Java stream 对list去重
时间: 2023-03-11 10:16:27 浏览: 150
在Java 8及以上版本中,可以使用Java Stream API对List进行去重操作。下面是一些实现方法:
1. 使用distinct()方法:
```java
List<Integer> list = Arrays.asList(1, 2, 2, 3, 3, 3, 4, 5);
List<Integer> distinctList = list.stream().distinct().collect(Collectors.toList());
System.out.println(distinctList); // Output: [1, 2, 3, 4, 5]
```
2. 使用Collectors.toSet()方法:
```java
List<Integer> list = Arrays.asList(1, 2, 2, 3, 3, 3, 4, 5);
List<Integer> distinctList = list.stream().collect(Collectors.toSet())
.stream().collect(Collectors.toList());
System.out.println(distinctList); // Output: [1, 2, 3, 4, 5]
```
3. 使用Collectors.toMap()方法:
```java
List<Integer> list = Arrays.asList(1, 2, 2, 3, 3, 3, 4, 5);
List<Integer> distinctList = new ArrayList<>(list.stream()
.collect(Collectors.toMap(Function.identity(),
v -> v,
(v1, v2) -> v1))
.values());
System.out.println(distinctList); // Output: [1, 2, 3, 4, 5]
```
这些方法中,第一种方法是最简单的,但是它只适用于基本类型和字符串。如果要处理对象,则需要使用第二种或第三种方法,其中第三种方法可以处理更复杂的情况。
阅读全文