gpt4 book ai didi

java - 如何在 streamex 中对映射流的 double 值求和?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:48:14 25 4
gpt4 key购买 nike

StreamEx 库似乎真的能帮助我简洁地编写 Java 8 流,尤其是在考虑 map 时(例如,使用 mapKeyValue,而不必手动拆箱 map 条目)。

如果我在 map 中有一个条目流,在原始 Java 8 中我可以通过这种方式对值求和:

someMap.entrySet().stream()
.mapToDouble(Entry::getValue)
.sum()

我也可以在 StreamEx 中做到这一点,但我希望在 StreamEx 中看到更好的方法,尽管我能想到的最好的方法是:

EntryStream.of(someMap)
.values()
.mapToDouble(d -> d)
.sum();

哪个好不了。

还有我想念的更好的方法吗?

最佳答案

因为您只对 Map 的值感兴趣,你可以只拥有:

double sum = someMap.values().stream().mapToDouble(d -> d).sum();

使用 Stream API 本身。这会创建一个 Stream<Double>直接从 map 的值,将其映射到原语 DoubleStream并返回总和。

使用 StreamEx ,您可以将其简化为:

double sum = DoubleStreamEx.of(someMap.values()).sum();

使用 DoubleStreamEx.of 直接拍Collection<Double> .


如果您已经有一个 EntryStream ,你将无法拥有比以下更简单的东西:

double sum = entryStream.mapToDouble(Entry::getValue).sum();

关于java - 如何在 streamex 中对映射流的 double 值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35558139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com