Skip to content
Related Articles

Related Articles

concat() Method of Stream Interface in Java API
  • Last Updated : 05 Feb, 2021

Stream Interface in Java API is present in Java.Util.Stream and is extending the BaseStream<T, Stream<T>> interface. This interface is created on any stream of objects and it provides a lot of methods that can be used to modify the stream of those objects.

concat() Method:

The name of the method suggests this method is mainly used to concatenate two streams together. In concatenation, the content of the first stream is followed by the second stream. The final output streams may be ordered or parallel. This basically depends on the input streams. The main point to note about this method here is that when this concatenated stream is closed then the two concatenated streams are also closed.

Since at a time only two streams are able to concatenate, so several streams can be concatenated using the idea that first, we concatenate two of the streams and then concatenate that result with another stream so that lastly all the streams are concatenated.

Example:



let s1=stream 1

s2=stream 2

.

.

.

sn=stream n

so concatenation of all the streams can be shown as :

result stream is = concat(s1,concat(s2,concat(………).))

hence the resulting stream has all the streams in the order s1s2s3s4s5s6……sn.

The declaration syntax for the method is shown below.

static <T> Stream<T> concat(Stream<? extends T> A , Stream<? extends T> B).

Here we are having two streams of type T namely A and B. Also the main thing to notice here is that this method is a static method.

Below is the implementation of the problem statement:

Example 1:

Java




// Implementation of concat() method
// of Stream interface in Java API
  
import java.util.*;
  
// importing the necessary classes to
// implement the stream interface
import java.util.stream.Stream;
  
// save as file named GFG2.java
public class GFG2 {
    
    // main method
    public static void main(String[] args) throws Exception
    {
  
        // first stream
        Stream<Integer> s1 = Stream.of(1, 2, 3, 4);
  
        // second stream
        Stream<Integer> s2 = Stream.of(5, 6, 7, 8);
  
        // concatenation and printing
        // of the stream elements.
        Stream.concat(s1, s2).distinct().forEach(
            ele -> System.out.println(ele));
    }
}
Output
1
2
3
4
5
6
7
8

Example 2: 

Java




// Implementation of concat() method
// of Stream interface in Java API
import java.util.*;
  
import java.util.stream.DoubleStream;
  
// importing the necessary classes
// to implement the stream interface
import java.util.stream.Stream;
  
// save as file named GFG2.java
public class GFG2 {
    
    // main method
    public static void main(String[] args) throws Exception
    {
  
        // first stream
        DoubleStream s1
            = DoubleStream.of(1.025, 2.0687, 3.01);
  
        // second stream
        DoubleStream s2 = DoubleStream.of(5.2587410, 8);
  
        // concatenation and printing
        // of the stream elements.
        DoubleStream.concat(s1, s2).distinct().forEach(
            ele -> System.out.println(ele));
    }
}
Output
1.025
2.0687
3.01
5.258741
8.0

In the same way, we can have a different types of streams such as one for string, for char, and many more.

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :