List<PlanCheckDept>用流如何根据字段:checkDeptCode进行去重
时间: 2024-09-06 17:03:09 浏览: 34
List<Bean>转换为List<Map>
在Java中,使用流(Stream)对`List<PlanCheckDept>`根据字段`checkDeptCode`进行去重,可以通过以下步骤实现:
1. 首先使用`stream()`方法将集合转换为流。
2. 然后使用`distinct()`方法进行去重。为了根据`checkDeptCode`字段去重,需要提供自定义的比较器。
3. 最后通过`collect(Collectors.toList())`收集结果到新的列表中。
示例代码如下:
```java
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<PlanCheckDept> planCheckDepts = // ... 初始化列表
List<PlanCheckDept> uniqueList = planCheckDepts.stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(PlanCheckDept::getCheckDeptCode))),
ArrayList::new));
// uniqueList 现在包含了根据 checkDeptCode 字段去重后的 PlanCheckDept 对象
}
}
class PlanCheckDept {
private String checkDeptCode;
// ... 其他字段和方法
public String getCheckDeptCode() {
return checkDeptCode;
}
// ... 其他方法
}
```
在这个示例中,我们使用了`TreeSet`和它的构造函数`Comparator.comparing`来根据`checkDeptCode`进行排序,这样重复的元素就会被自动去除。
阅读全文