1.前言
我们一般统计某个数量的时候习惯于用map
Map<String, Integer> map = new HashMap<>(); if (map.containsKey("Bob")) { Integer count = map.get("Bob"); map.put("Bob", count++); } else { map.put("Bob", 0); }
先判断是否有对应的key,然后++;
2.利用merge方法
Map<String, Integer> map = new HashMap<>(); map.merge("Bob", 1, Integer::sum);
merge方法意思是: 如果没有对应的Key值,比如:"Bob",那么就放入指定值 1, 否则就运行指定的函数.
这边函数用的是sum的方法引用,直接递增Bob的数量.
可以看到merge和函数式编程结合起来让实现一个功能的代码少多了, 也更清晰.