Merge Streams In Java

In this tutorial, I am showing how to merge multiple streams in java using different ways.
Note: Stream.concat(stream1,stream2) method is useful
when you have 2 streams and if you have more than 2 streams, you can
use Stream.of(stream1,
stream2, stream3, stream4)
method.
Merge two Streams
The best way to merge two streams, you can use Stream.concat(stream1,stream2) method. You can see example below.
package com.javatips; import java.util.stream.Stream; public class MergeStream { public static void main(String[] args) { Stream<String> stream1 = Stream.of("A","B","C"); Stream<String> stream2 = Stream.of("D","E","F"); Stream<String> mergedStream = Stream.concat(stream1, stream2); mergedStream.forEach(stream -> System.out.println(stream)); } }
Output
A B C D E F
Merge Multiple Streams
When you have to merge more than 2 streams, you can use Stream.of(stream1, stream2, stream3, stream4)
package com.javatips; import java.util.stream.Stream; public class MergeStream { public static void main(String[] args) { Stream<String> stream1 = Stream.of("A","B","C"); Stream<String> stream2 = Stream.of("D","E","F"); Stream<String> stream3 = Stream.of("G","H","I"); Stream<String> stream4 = Stream.of("J","K","L"); Stream<String> mergedStream = Stream.of(stream1, stream2, stream3, stream4).flatMap(i -> i); mergedStream.forEach(stream -> System.out.println(stream)); } }
Output
A B C D E F G H I J K L