如何使用stream去重
时间: 2023-11-10 16:06:26 浏览: 72
在Java中,可以使用Stream来进行去重操作。有多种方法可以实现去重,下面介绍两种常用的方式。
1. 使用distinct()方法:Stream提供了distinct()方法来进行去重操作。它会返回一个去重后的新Stream,其中不包含重复的元素。示例如下:
```java
List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 5);
List<Integer> distinctNumbers = numbers.stream()
.distinct()
.collect(Collectors.toList());
System.out.println(distinctNumbers); // 输出:[1, 2, 3, 4, 5]
```
在上述代码中,我们创建了一个包含重复元素的List集合。通过调用stream()方法将集合转换为Stream,然后使用distinct()方法进行去重操作,最后使用collect(Collectors.toList())将去重后的元素收集到一个新的List集合中。
2. 使用HashSet实现:另一种常用的去重方式是利用HashSet的特性。HashSet是基于哈希表实现的集合,它不允许包含重复元素。可以通过将Stream中的元素收集到HashSet中来实现去重。示例如下:
```java
List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 5);
Set<Integer> distinctNumbers = numbers.stream()
.collect(Collectors.toSet());
System.out.println(distinctNumbers); // 输出:[1, 2, 3, 4, 5]
```
在上述代码中,我们同样将集合转换为Stream,并使用collect()方法将元素收集到一个HashSet集合中。由于HashSet不允许包含重复元素,因此会自动去除重复的元素。
这两种方式都可以实现Stream的去重操作,具体选择哪种方式取决于实际需求和个人偏好。
阅读全文