以下是检查某些条件并更新变量的传统代码。
HashMap<Integer,Integer> testMap= new HashMap<>();
int pair = 0;
for(Integer value: testMap.values()){
pair = pair+value/2;
}
使用java8流或lambdas如何实现相同的目的?
答案 0 :(得分:4)
stream
的{{1}}值,对其进行转换,然后进行Map
sum()
要使其看起来更像原始代码,可以使用int pair = testMap.values().stream().mapToInt(i -> i / 2).sum();
操作:
reduce()
基本上,此操作从值int pair = testMap.values()
.stream()
.reduce(0, (p, i) -> p + i / 2);
(“身份”)开始,然后将应用归约函数作为输入的结果以及当前值依次传递给每个值。
P.S。程序到界面:
0