Lambda填充Map

Kar*_*arl 2 java collections dictionary java-8

我试图填写一张地图,上面有文字及其出现次数.我正在尝试写一个lambda来做它,就像这样:

Consumer<String> wordCount = word -> map.computeIfAbsent(word, (w) -> (new Integer(1) + 1).intValue());
Run Code Online (Sandbox Code Playgroud)

mapMap<String, Integer>.如果它不存在,它应该只是将地图中的单词作为键插入,如果它存在则应该将其整数值增加1.这个语法不正确.

ass*_*ias 7

您不能使用增加计数computeIfAbsent,因为它只会在第一次计算.

你可能意味着:

map.compute(word, (w, i) -> i == null ? 1 : i + 1);
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是`map.merge(word,1,Integer :: sum)` (3认同)