list stream去重复元素
时间: 2023-08-24 17:13:16 浏览: 90
要对一个流(stream)进行去重操作,可以使用Java8中的Distinct操作。Distinct操作会返回一个去除重复元素的流。下面是一个示例代码:
```javaList<Integer> numbers = Arrays.asList(1,2,2,3,4,4,5);
List<Integer> distinctNumbers = numbers.stream().distinct().collect(Collectors.toList());
```
在上面的代码中,我们创建了一个包含重复元素的整数列表numbers。然后,我们使用stream()方法将列表转换为流,然后使用distinct()方法进行去重操作。最后,我们使用collect(Collectors.toList())方法将结果收集到一个新的列表distinctNumbers中。
注意:distinct()方法依赖于元素的hashCode()和equals()方法。因此,如果你要对自定义对象进行去重操作,需要确保重写了这两个方法。
希望这个答案能帮到你!如果还有其他问题,请继续提问。
相关问题
stream对list排序,并去重复元素
可以使用Java 8中的stream来对list进行排序和去重。具体实现如下:
List<Integer> list = Arrays.asList(3, 2, 1, 2, 3, 4, 5);
List<Integer> result = list.stream()
.distinct()
.sorted()
.collect(Collectors.toList());
这段代码首先使用Arrays.asList()方法创建一个包含重复元素的list。然后使用stream()方法将list转换为一个流。接着使用distinct()方法去重复元素,sorted()方法对元素进行排序,最后使用collect()方法将结果收集到一个新的list中。
stream去除list中某个元素重复的数据
要去除 List 中某个元素重复的数据,可以使用 Java 8 中的 Stream API 和 Collectors 工具类中的 toSet() 方法。具体来说,你可以使用 filter() 方法过滤出不包含重复元素的 List,然后再使用 Collectors.toSet() 方法将其转换为 Set,最后再转换回 List。例如:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 1, 2, 5);
int elementToRemove = 1;
List<Integer> result = list.stream()
.filter(e -> !e.equals(elementToRemove))
.collect(Collectors.toSet())
.stream()
.collect(Collectors.toList());
System.out.println(result);
```
输出结果为:
```
[2, 3, 4, 5]
```
在这个例子中,我们要去除 List 中所有值为 1 的元素。首先使用 filter() 方法过滤掉这些元素,然后使用 Collectors.toSet() 方法将其转换为 Set,因为 Set 中元素是唯一的,所以重复的元素自动被去除了。最后再将 Set 转换回 List。
阅读全文