java List实体类 根据指定参数 去重
时间: 2023-12-01 17:03:47 浏览: 63
java list去重操作实现方式
如果你想要根据实体类中的某个属性去重,可以考虑使用Java 8的Stream API。你可以将实体类转换成Stream对象,使用distinct()方法去重,最后将结果转换回List对象即可。
假设你的实体类为Person,其中有一个属性为name,你想要根据name属性去重,那么可以按照以下方式实现:
```java
List<Person> personList = new ArrayList<>();
// 添加数据到personList中
...
List<Person> uniquePersonList = personList.stream()
.filter(distinctByKey(Person::getName))
.collect(Collectors.toList());
// 定义一个根据指定属性去重的方法
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
```
在代码中,我们使用了filter()方法和distinctByKey()方法,其中filter()方法用于过滤重复的数据,distinctByKey()方法用于根据指定属性去重。最终,我们使用collect()方法将结果转换回List对象。
阅读全文