使用Java8通过Hashmap进行迭代时返回或收集值

时间:2018-12-31 18:01:38

标签: java java-8 hashmap

以下是检查某些条件并更新变量的传统代码。

HashMap<Integer,Integer> testMap= new HashMap<>();
int pair = 0;
for(Integer value: testMap.values()){
        pair = pair+value/2;
}

使用java8流或lambdas如何实现相同的目的?

1 个答案:

答案 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