Java List集合根据实体类属性去重

一. 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]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值