如何使用改进的 Java 8 迭代来迭代和处理 Map 键/值

Dhi*_*ain 5 java foreach java-8 java-stream

我已阅读答案表明我可以有效地做到这一点:

map.forEach((key, value) -> {
    System.out.println("Key : " + key + " Value : " + value);
});
Run Code Online (Sandbox Code Playgroud)

但没有一个答案提供了在forEach循环内计算某些内容的示例。例如,如果我有一个Map<String, Integer>,我想找出有多少个值的值为5。我如何在forEach循环内执行此操作?

Neu*_*ron 3

我不知道你想在循环中计算这个的原因是什么forEach,因为正如其他人已经指出的那样,有更好的单行代码,但你可以这样做:

final int[] count = {0};
map.forEach((key, value) -> {
    if (value == 5)
        count[0]++;
});
System.out.println(count[0]);
Run Code Online (Sandbox Code Playgroud)