一. Stream流去重
// 创建一个包含DeptEntity对象的List,并向其中添加若干元素
List<DeptEntity> deptEntityList= new ArrayList<>();
deptEntityList.add(new DeptEntity(1, '部门1'));
deptEntityList.add(new DeptEntity(1, '部门1'));
deptEntityList.add(new DeptEntity(2, '部门2'));
// 使用java8的stream流进行元素去重(根据DeptEntity中的id进行元素去重)
ArrayList<DeptEntity> disList = deptEntityList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(DeptEntity::getId))
)
, ArrayList::new
)
);
二. TreeSet去重
List<DeptEntity> deptEntityList= new ArrayList<>();
deptEntityList.add(new DeptEntity(1, "部门1"));
deptEntityList.add(new DeptEntity(1, "部门1"));
deptEntityList.add(new DeptEntity(2, "部门2"));
// 创建一个TreeSet集合,指定根据实体类的id属性去重
TreeSet<DeptEntity> deptEntityTreeSet = new TreeSet<>(Comparator.comparing(DeptEntity::getId));
// 将数据添加到TreeSet集合中
deptEntityTreeSet.addAll(deptEntityList);
// 将TreeSet集合转换为List集合
List<DeptEntity> arrayList2 = new ArrayList<>(deptEntityTreeSet);
System.out.println(arrayList2);
// [DeptEntity [id=1, name=部门1], DeptEntity [id=2, name=部门2]]
转自:https://blog.youkuaiyun.com/qq_34820803/article/details/128240342