繁体   English   中英

Java Stream API —如何减少循环以减少

[英]Java Stream API — How to reduce a loop to reduce

我有以下声明:

Function<Stream<Supplier<Collection<? extends User>>>, Stream<User>> userStreamSupplier =
   supStream -> {
    ArrayList<User> list = new ArrayList<>();
    supStream.forEach(sup -> list.addAll(sup.get()));
    return list.stream();
};

是否可以将内部lambda中的循环转换为智能stream.reduce操作(或其他聚合)? 我尝试了各种方法,但失败了。

问候,JG。

您可以改用flatMap

supStream -> supStream.flatMap(supp -> supp.get().stream());

返回一个流,该流包括将流中的每个元素替换为通过将提供的映射函数应用于每个元素而生成的映射流的内容而得到的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM