如何使两个list集合合并_JavaStream流如何进⾏合并操作1. 前⾔
Java Stream Api 提供了很多有⽤的 Api 让我们很⽅便将集合或者多个同类型的元素转换为流进⾏操作。今天我们来看看如何合并
Stream 流。
2. Stream 流的合并
Stream 流合并的前提是元素的类型能够⼀致。
2.1 concat
最简单合并流的⽅法是通过 at() 静态⽅法:
Stream stream = Stream.of(1, 2, 3);Stream another = Stream.of(4, 5, 6);Stream concat = at(stream, another);List collect = llect(Colle 这种合并是将两个流⼀前⼀后进⾏拼接:
2.2 多个流的合并
多个流的合并我们也可以使⽤上⾯的⽅式进⾏“套娃操作”:
java stream
你可以⼀层⼀层继续套下去,如果需要合并的流多了,看上去不是很清晰。
我之前介绍过⼀个Stream 的 flatmap 操作 ,它的⼤致流程可以参考⾥⾯的这⼀张图:
因此我们可以通过 flatmap 进⾏实现合并多个流:
Stream stream = Stream.of(1, 2, 3);Stream another = Stream.of(4, 5, 6);Stream third = Stream.of(7, 8, 9);Stream more = Stream.of(0);Stream concat = St 这种⽅式是先将多个流作为元素⽣成⼀个类型
为 Stream> 的流,然后进⾏ flatmap 平铺操作合并。
2.3 第三⽅库
有很多第三⽅的强化库 StreamEx 、Jooλ 都可以进⾏合并操作。另外反应式编程库 Reactor 3 也可以将 Stream 流合并为反应流,在某些场景下可能会有⽤。这⾥演⽰⼀下:
List block = Flux.fromStream(stream)                      .mergeWith(Flux.fromStream(another))                                .collectList()                                .block();
3. 总结
如果你经常使⽤ Java Stream Api ,合并 Stream 流是经常遇到的操作。今天简单介绍了合并 Stream 流的⽅式,希望对你有⽤。我是
码农⼩胖哥 ,多多关注!更多⼲货奉上。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。