2015-04-28 31 views
1

现在我有一个HashMap我试图减少到一个总数。这里是当前的代码:使用Java 8和HashMap清除地图减少

HashMap map = new HashMap<String, Long>(); 
map.put("ex1", 757L); 
map.put("ex2", 77L); 

map.values() 
    .stream() 
    .reduce(0L, (a, b) -> a + b); 

有没有更好的方法来做到这一点?我想使用sum方法。

+1

同样[本](http://stackoverflow.com/q/24421140/2711488),只需用'INT替换'double' ',分别。带有Integer的'Double' ... – Holger

回答

6

您可以使用mapToLong获得LongStream然后调用sum()

long sum = map.values().stream().mapToLong(i -> i).sum();