【发布时间】:2016-04-17 12:09:21
【问题描述】:
我正在尝试转换:
Map<String,Long> parties = new HashMap<>();
parties.add("a", 1);
...
Long counter = 0l;
for (Long votes : parties.values()){
counter += votes;
}
对于 Java8 中的 lambda,我使用 reduce 尝试如下:
parties.entrySet().stream().reduce((stringLongEntry, stringLongEntry2) -> /*Here I Stack*/)
但我不知道如何继续。
PS:我知道我可以做到:
parties.values().stream().count(); 但我想找到另一种方法。
【问题讨论】:
-
为什么要另辟蹊径?
-
您是否总是在值中存储 1?在这种情况下,地图的大小就是您所需要的。
-
@FedericoPeraltaSchaffner 不,我不会放弃 1 ,这只是一个例子
-
那么为什么你认为
parties.values().stream().count()是sum包含的值的解决方案? -
parties.add??
标签: java lambda java-8 hashmap java-stream