栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何对流中的Map中的值求和?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何对流中的Map中的值求和?

这是另一种方法:

int sum = data.values().stream().reduce(0, Integer::sum);

int
不过,总的来说,保罗的回答是减少装箱和拆箱。)

至于 一般而言 ,我认为没有比这更方便的方法了。

我们可以做这样的事情:

static <T> T sum(Map<?, T> m, BinaryOperator<T> summer) {    return m.values().stream().reduce(summer).get();}int sum = MyMath.sum(data, Integer::sum);

但是你总会过夏天。

reduce
也是有问题的,因为它返回了
Optional
。上面的
sum
方法为一个空的映射抛出一个异常,但是一个空的和应该为0。当然,我们也可以传递0:

static <T> T sum(Map<?, T> m, T identity, BinaryOperator<T> summer) {    return m.values().stream().reduce(identity, summer);}int sum = MyMath.sum(data, 0, Integer::sum);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573870.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号