java List 根据多个字段去重
时间: 2023-07-06 22:37:41 浏览: 174
如果想要根据多个字段去重,可以使用 Java 8 的 Stream API 和 lambda 表达式结合 `distinct()` 方法和 `Comparator.comparing()` 方法来实现。具体实现代码如下:
```java
List<ClientFollowUp> distinctList = list.stream()
.distinct()
.collect(Collectors.toList());
```
上述代码中的 `distinct()` 方法会根据对象的 `equals()` 和 `hashCode()` 方法去重,而 `Comparator.comparing()` 方法可以指定多个字段作为比较的条件,例如:
```java
List<ClientFollowUp> distinctList = list.stream()
.distinct()
.sorted(Comparator.comparing(ClientFollowUp::getTitle)
.thenComparing(ClientFollowUp::getCountry)
.thenComparing(ClientFollowUp::getCustomerName))
.collect(Collectors.toList());
```
上述代码中使用了 `sorted()` 方法来指定多个字段作为比较的条件,其中 `thenComparing()` 方法表示在前一个条件相等的情况下使用后一个条件进行比较。这样就能实现根据多个字段去重的操作了。
阅读全文