java List使用stream流根据id 去重
时间: 2024-09-25 12:17:46 浏览: 50
Java中对List去重 Stream去重的解决方法
在Java中,你可以使用`List`的Stream API结合`distinct()`和`collect()`方法来根据某个字段(比如ID)去重。假设你有一个`Person`类,其中包含一个`id`属性,并且你的`List<Person>`存储了这些人:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class Person {
private int id;
// 其他属性...
// getters and setters...
}
List<Person> persons = ... // 初始化你的person列表
// 使用Stream处理列表并根据id去重
List<Person> uniquePersonsById = persons.stream()
.distinct(Comparator.comparing(Person::getId))
.collect(Collectors.toList());
```
在这个例子中,`Comparator.comparing(Person::getId)`是一个函数式接口,它接受一个`Person`实例并返回其ID值,`distinct()`方法会根据这个比较器来找出唯一的元素。最后,`collect()`方法将处理后的流转换回一个新的`List<Person>`。
阅读全文