java stream 合并list重复的数据
时间: 2023-10-10 15:10:56 浏览: 71
可以使用Java 8中的Stream API来合并两个列表并去除重复的元素,示例如下:
```
List<String> list1 = Arrays.asList("a", "b", "c");
List<String> list2 = Arrays.asList("b", "c", "d");
List<String> mergedList = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println(mergedList);
```
输出结果为:`[a, b, c, d]`
首先使用 `Stream.concat()` 方法将两个列表合并成一个流。然后使用 `distinct()` 方法去除重复的元素,最后使用 `Collectors.toList()` 方法将结果收集到一个新的列表中。
相关问题
java stream 合并list
Java Stream是Java 8中的一个新特性,它提供了一种非常强大的功能,能够让我们以一种更简单、更简洁的方式来处理集合数据。Java Stream可以被看作是函数式编程的一个重要组成部分,可以非常方便地对集合进行处理和转换。
在Java Stream中,我们可以使用flatMap()方法来合并多个列表。flatMap()方法接受一个函数作为参数,这个函数将一个元素转换为一个流,然后将这些流进行扁平化,最终将它们合并成一个流。具体操作步骤如下:
1.将多个列表转化为一个流。
2.对这个流进行flatMap()操作,将其中的元素扁平化为一个个字符串,也就是我们所说的字符串流。
3.然后再将这个流转化回一个列表。
示例代码如下:
```
List<List<Integer>> lists = new ArrayList<>();
lists.add(Arrays.asList(1, 2, 3));
lists.add(Arrays.asList(4, 5, 6));
lists.add(Arrays.asList(7, 8, 9));
List<Integer> result = lists.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
```
在上面的代码中,我们首先定义了三个列表,然后通过stream()方法将它们转化为一个流。接着,我们使用flatMap()方法将其中的元素扁平化为一个Integer类型的流,然后再将这个流转化回一个列表。
这样,我们就成功地将多个列表合并成了一个列表,并且代码也非常简洁和易于理解。这种方式不仅能够提高我们的代码效率和可读性,而且还能够使我们的代码更加容易维护和扩展。
java stream 提取子list 合并新list
你可以使用 Java 8 中的 Stream API 来提取子 List 并合并成新的 List。例如,如果你有一个 List,你想要提取其中一部分并将其合并成一个新的 List,你可以使用 subList() 方法和 Stream API 中的 flatMap() 和 collect() 方法来完成。以下是一个示例代码:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 提取子 List
List<Integer> subList = list.subList(2, 7);
// 合并成新的 List
List<Integer> newList = subList.stream()
.collect(Collectors.toList());
```
在上面的代码中,我们首先使用 subList() 方法从原始 List 中提取子 List。然后,我们使用 collect() 方法将其收集到新的 List 中。
如果你想要将多个子 List 合并成一个新的 List,你可以使用 Stream API 中的 flatMap() 方法。以下是一个示例代码:
```java
List<List<Integer>> nestedList = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
// 合并成新的 List
List<Integer> newList = nestedList.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
```
在上面的代码中,我们首先定义了一个嵌套的 List,然后使用 flatMap() 方法将其转换为单个的 Stream,并使用 collect() 方法将其收集到新的 List 中。
阅读全文