如何在具有流的Map中对值进行求和? [英] How to sum values in a Map with a stream?
本文介绍了如何在具有流的Map中对值进行求和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public static< T extends Number> T getSum(final Map< String,T> data){
T sum = 0;
for(String key:data.keySet())
sum + = data.get(key);
回报金额;
$ b 这段代码实际上并不编译,因为0不能分配给T类型,但您明白了。
解决方案您可以这样做:
int sum = data.values()。stream()。mapToInt(Number :: intValue).sum();
I want the equivalent of this with a stream:
public static <T extends Number> T getSum(final Map<String, T> data) {
T sum = 0;
for (String key: data.keySet())
sum += data.get(key);
return sum;
}
This code doesn't actually compile because 0 cannot be assigned to type T, but you get the idea.
解决方案 You can do this:
int sum = data.values().stream().mapToInt(Number::intValue).sum();
这篇关于如何在具有流的Map中对值进行求和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文