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)); } } |
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)); } } |
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.