Open In App

concat() Method of Stream Interface in Java API

Last Updated : 05 Feb, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads