我正在尝试将其转换为:
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();
,但我想找到另一种方法。 最佳答案
尝试以下表达式:
counter = parties.values().stream().map((votes) -> votes).reduce(counter, (a, i) -> a+i);
此外,您的代码中几乎没有错误:
Map<String,Long> parties = new HashMap<>();
是正确的方法,但是您的错误是错误的。 HashMap
没有.add(..)
方法,但是.put(..)
方法:parties.put("a",1L);
Long
,所以您必须使用1L
或1l
而不是整个1
来指定Long
值。