Иногда возникает необходимость объединить два различных стрима. В это статье мы расскажем вам, как это сделать несколькими способами.
Объединение с помощью Stream.concat
Это наиболее популярный и удобный способ объединения двух стримов.
Допустим, у вас есть два стрима:
Stream<String> s1 = Arrays.stream(new String[]{"A", "B", "C"}); Stream<String> s2 = Arrays.stream(new String[]{"D", "E", "F"});
Их можно объединить с помощью метода Stream.concat:
Stream.concat(s1, s2).forEach(System.out::println);
Stream.concat объединит элементы из двух стримов в один стрим.
Объединение стримов IntStream, LongStream, DoubleStream
Если вам требуется объединить элементы из стримов типа IntStream, LongStream или DoubleStream, можно воспользоваться тем же методом concat:
IntStream i1 = IntStream.range(1, 5); IntStream i2 = IntStream.range(5, 11); IntStream.concat(i1, i2).forEach(System.out::println);
Аналогичным образом объединяются элементы в стримах LongStream и DoubleStream.
Исходный код
import java.util.Arrays; import java.util.stream.IntStream; import java.util.stream.Stream; public class MergeTwoStreamsExample { public static void main(String[] args) { Stream<String> s1 = Arrays.stream(new String[]{"A", "B", "C"}); Stream<String> s2 = Arrays.stream(new String[]{"D", "E", "F"}); Stream.concat(s1, s2).forEach(System.out::println); IntStream i1 = IntStream.range(1, 5); IntStream i2 = IntStream.range(5, 11); IntStream.concat(i1, i2).forEach(System.out::println); // LongStream.concat(...) // DoubleStream.concat(...) } }
Заключение
В данной статье мы рассмотрели, как объединить элементы двух стримов с помощью метода Stream.concat. Точно так же можно объединять стримы IntStream, LongStream и DoubleStream.