全部使用多线程编程并且没有Guava。
我的问题和this one一样,但我想在没有 break;
的情况下解决它。我已经读过这个主题,但仍然没有解决问题,我是多线程中的新生,所以也许解决方案就在这里,但我看不到它。
我正在尝试计算单词数。如果这个单词已经满足,则增加值,如果不满足,则将新节点放入映射中,键为 word
和 value
1。
这是我的代码,它是错误的。我想避免任何循环。
String word = m.group();
if(wordMap.putIfAbsent(word, 1) == null){
Integer old;
while (!wordMap.replace(word, old = wordMap.get(word), old + 1));
}
最佳答案
merge-Method 是您最有可能寻找的:
String word = m.group();
wordMap.merge(word, 1, Integer::sum);
关于java - 我正在尝试增加 ConcurrentHashMap 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55634897/