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