java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑

java中集合如果放普通类型很好进行排序和去重,本文讲述下当列表中存放的是对象时如何去重和排序

List对象去重,贴一下对象类

java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑_第1张图片

去重方法,这里是根据对象的name属性去重

java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑_第2张图片

排序,利用Collection.sort()进行排序

java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑_第3张图片

看下运行结果

java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑_第4张图片

注意:TreeSet用来排序和去重的坑,先看看代码

java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑_第5张图片
java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑_第6张图片
java List<对象> List列表根据对象的属性去重和排序,TreeSet去重排序的坑_第7张图片

使用上Set UserTenantList = new TreeSet<>(Comparator.comparing(TbUserTenant::getOrderNum));

TreeSet必须在初始化的时候就指定排序的属性OrderNum,然后通过add房子自动进行排序,但是只针对对象的属性OrderNum进行去重,一开始我测试的数据正好达到了预期效果,我以为TreeSet一看有Set可以进行对象的去重,结果踩坑,就是说如果排序和去重的属性不一致,那么用TreeSet会出问题,在此记录一下。

你可能感兴趣的:(java,list,排序算法)