- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
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/
以下代码将对象流拆分为 1000 个 block ,在具体化时对其进行处理,并最终返回对象总数。 在所有情况下,返回的数字都是正确的,除非流大小恰好为 1。在流大小为 1 的情况下,返回的数字为 0。
我注意到在标准 Java 流下面的情况下比 StreamEx 更好地“计算”变量类型。这很奇怪,因为人们喜欢 StreamEx 并在任何地方都使用它,但是代码却被“?”污染了。我想用 List但 St
StreamEx 库似乎真的能帮助我简洁地编写 Java 8 流,尤其是在考虑 map 时(例如,使用 mapKeyValue,而不必手动拆箱 map 条目)。 如果我在 map 中有一个条目流,在原
我有一个像这样创建的流: StreamEx.generate(new MySupplier>()) .flatMap(List::stream) .map(Entity
我注意到,如果我使用 StreamEx 库通过自定义 ForkJoinPool 并行处理我的流,如下所示 - 后续操作会在该池的并行线程中运行。但是,如果我添加一个 map() 操作并并行生成流 -
我正在寻找一种使用 StreamEx 库仅流式传输非空 Optional 条目的优雅方式。或者标准库,如果可能的话。 目前我正在使用以下相当冗长的方法: List> list = Arrays.
StreamEx 是一个功能强大的库,但在某些时候我不再需要它的超能力了。 如何摆脱 StreamEx 内部开销?这会带来问题吗? 例如 public void process(Path path){
我是一名优秀的程序员,十分优秀!