list实体类集合去重
时间: 2023-12-18 15:28:39 浏览: 29
以下是两种Java集合类中List实体类集合去重的例子:
1.根据多个字段去重
```java
List<ResourcesData> distinctClass = resourcesDataList.stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getSkill() + ";" + o.getTechLevel()))),
ArrayList::new));
```
2.普通版
```java
projectList = projectList.stream().distinct().collect(Collectors.toList());
```
相关问题
list集合根据实体类一个属性去重
可以使用 Java 8 中的 Stream API,使用 distinct() 和 lambda 表达式根据实体类的某个属性进行去重。例如:list.stream().distinct().comparator(Comparator.comparing(Entity::getProperty)).collect(Collectors.toList())。
java 实体类去重
以下是Java实体类去重的方法:
1.使用HashSet去重。HashSet是一种不允许有重复元素的集合,可以利用这个特性去重。需要在实体类中重写equals()和hashCode()方法,以便HashSet正确判断两个对象是否相等。示例代码如下:
```java
List<User> userList = new ArrayList<>();
// 添加User对象到userList中
Set<User> userSet = new HashSet<>(userList);
// userSet中即为去重后的User对象
```
2.使用Java 8的Stream API去重。Java 8引入了Stream API,可以方便地对集合进行操作。使用Stream API可以通过distinct()方法去重。示例代码如下:
```java
List<User> userList = new ArrayList<>();
// 添加User对象到userList中
List<User> distinctUserList = userList.stream().distinct().collect(Collectors.toList());
// distinctUserList中即为去重后的User对象
```