El método Stream.concat() crea un flujo concatenado en el que los elementos son todos los elementos del primer flujo seguidos de todos los elementos del segundo flujo. El flujo resultante se ordena si ambos flujos de entrada están ordenados y es paralelo si cualquiera de los flujos de entrada es paralelo.
Sintaxis:
static <T> Stream<T> concat(Stream<? extends T> stream1, Stream<? extends T> stream2) Where, T is the type of stream elements, stream1 represents the first stream, stream2 represents the second stream and the function returns the concatenation of the two input streams
Se puede pensar que las llamadas a Stream.concat(stream1, stream2) forman un árbol binario. La concatenación de todos los flujos de entrada está en la raíz. Los flujos de entrada individuales están en las hojas. A continuación se dan algunos ejemplos de árboles de hasta cuatro flujos de entrada a, b, c y d.
Para dos flujos a y b, el árbol se ve así:
Para tres flujos a, b y c, el árbol se ve así:
Para cuatro flujos a, b, c y d, el árbol se ve así:
Cada flujo de entrada adicional agrega una capa de profundidad al árbol y una capa de indirección para llegar a todas las otras corrientes.
Nota: Los elementos devueltos por el método Stream.concat() están ordenados. Por ejemplo, las siguientes dos líneas devuelven el mismo resultado:
Stream.concat(Stream.concat(stream1, stream2), stream3); Stream.concat(stream1, Stream.concat(stream2, stream3));
Pero el resultado para los dos siguientes es diferente.
Stream.concat(Stream.concat(stream1, stream2), stream3); Stream.concat(Stream.concat(stream2, stream1), stream3);
A continuación se muestran algunos ejemplos para comprender mejor la implementación de la función.
Ejemplo 1 :
// Implementation of Stream.concat() // method in Java 8 with 2 Streams import java.util.*; import java.util.stream.IntStream; import java.util.stream.Stream; class GFG { // Driver code public static void main(String[] args) { // Creating two Streams Stream<String> stream1 = Stream.of("Geeks", "for"); Stream<String> stream2 = Stream.of("GeeksQuiz", "GeeksforGeeks"); // concatenating both the Streams // with Stream.concat() function // and displaying the result Stream.concat(stream1, stream2) .forEach(element -> System.out.println(element)); } }
Geeks for GeeksQuiz GeeksforGeeks
Ejemplo 2:
// Implementation of Stream.concat() // method in Java 8 with more than // two Streams import java.util.*; import java.util.stream.IntStream; import java.util.stream.Stream; class GFG { // Driver code public static void main(String[] args) { // Creating more than two Streams Stream<String> stream1 = Stream.of("Geeks"); Stream<String> stream2 = Stream.of("GeeksQuiz"); Stream<String> stream3 = Stream.of("GeeksforGeeks"); Stream<String> stream4 = Stream.of("GFG"); // concatenating all the Streams // with Stream.concat() function // and displaying the result Stream.concat(Stream.concat(Stream.concat(stream1, stream2), stream3), stream4) .forEach(element -> System.out.println(element)); } }
Geeks GeeksQuiz GeeksforGeeks GFG
Ejemplo 3:
// Implementation of Stream.concat() // method in Java 8 with DoubleStream import java.util.*; import java.util.stream.Stream; import java.util.stream.DoubleStream; class GFG { // Driver code public static void main(String[] args) { // Creating two Streams DoubleStream Stream1 = DoubleStream.of(1520, 1620); DoubleStream Stream2 = DoubleStream.of(1720, 1820); // concatenating both the Streams and // displaying the result DoubleStream.concat(Stream1, Stream2) .forEach(element -> System.out.println(element)); } }
1520.0 1620.0 1720.0 1820.0
Ejemplo 4:
// Implementation of Stream.concat() // method in Java 8 and removing // the duplicates import java.util.*; import java.util.stream.IntStream; import java.util.stream.Stream; class GFG { // Driver code public static void main(String[] args) { // Creating two Streams Stream<String> stream1 = Stream.of("Geeks", "for", "GeeksforGeeks"); Stream<String> stream2 = Stream.of("GeeksQuiz", "GeeksforGeeks", "for"); // concatenating both the Streams // with Stream.concat() function // and displaying the result after // removing the duplicates Stream.concat(stream1, stream2).distinct().forEach(element -> System.out.println(element)); } }
Geeks for GeeksforGeeks GeeksQuiz
Ejemplo 5:
// Implementation of Stream.concat() // method in Java 8 with LongStream import java.util.*; import java.util.stream.Stream; import java.util.stream.LongStream; class GFG { // Driver code public static void main(String[] args) { // Creating two Streams LongStream Stream1 = LongStream.of(1520, 1620); LongStream Stream2 = LongStream.of(1720, 1820); // concatenating both the Streams and // displaying the result LongStream.concat(Stream1, Stream2) .forEach(element -> System.out.println(element)); } }
1520 1620 1720 1820
Publicación traducida automáticamente
Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA