Skip to content

要合并两个Stream,您可以使用Stream.concat()方法。concat()方法会返回一个新的Stream,其中包含两个原始Stream的元素。以下是一个示例:

List<Integer> numbers1 = Arrays.asList(1, 2, 3);
List<Integer> numbers2 = Arrays.asList(4, 5, 6);

Stream<Integer> mergedStream = Stream.concat(numbers1.stream(), numbers2.stream());
List<Integer> mergedNumbers = mergedStream.collect(Collectors.toList());

在这个示例中,我们首先创建了两个包含整数的列表。然后,我们使用stream()方法将每个列表转换为一个Stream。接下来,我们使用Stream.concat()方法将两个Stream合并为一个新的Stream。最后,我们使用collect()方法将合并后的元素收集到一个新的列表中。

请注意,合并后的Stream中的元素顺序与原始Stream的顺序相同。如果您希望对合并后的Stream进行排序,可以在调用collect()方法之前使用Stream.sorted()方法。以下是一个合并并排序的示例:

List<Integer> numbers1 = Arrays.asList(1, 3, 5);
List<Integer> numbers2 = Arrays.asList(2, 4, 6);

Stream<Integer> mergedStream = Stream.concat(numbers1.stream(), numbers2.stream());
List<Integer> mergedAndSortedNumbers = mergedStream.sorted().collect(Collectors.toList());

在这个示例中,我们首先创建了两个包含整数的列表。然后,我们使用stream()方法将每个列表转换为一个Stream。接下来,我们使用Stream.concat()方法将两个Stream合并为一个新的Stream。

然后,我们使用sorted()方法对合并后的Stream进行排序。最后,我们使用collect()方法将排序后的元素收集到一个新的列表中。

请注意,合并和排序操作都是惰性执行的,只有在调用终端操作(例如collect())时才会实际执行。