怎么在java8项目中对List对象属性去重
怎么在java8项目中对List对象属性去重?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
第一种: 不使用java8
privateList<UserCar>removeDupliByRecordId(List<UserCar>userCars){ Set<UserCar>personSet=newTreeSet<UserCar>((o1,o2)->o1.getRecordId().compareTo(o2.getRecordId())); personSet.addAll(userCars); returnnewArrayList<UserCar>(personSet); }
这也是大多数人第一想到的,借助 TreeSet 去重,其中 TreeSet 的其中一个构造函数接收一个排序的算法,同时这也会用到 TreeSet 的去重策略上.
publicTreeSet(Comparator<?superE>comparator){ this(newTreeMap<>(comparator)); }
第二种: 炫酷的java8写法
List<Person>unique=persons.stream().collect( Collectors.collectingAndThen( Collectors.toCollection(()->newTreeSet<>(Comparator.comparing(Person::getName))),ArrayList::new) ); unique.forEach(p->System.out.println(p));
第三种: 炫酷的java8写法
List<String>names=newArrayList<>();//用来临时存储person的id List<Person>personList=persons.stream().filter(//过滤去重 v->{ booleanflag=!names.contains(v.getName()); names.add(v.getName()); returnflag; } ).collect(Collectors.toList());
java8根据某一属性过滤去重
//根据id去重 examRoomModelLists=examRoomModelLists.stream().collect(Collectors.collectingAndThen(Collectors.toCollection( //利用TreeSet的排序去重构造函数来达到去重元素的目的 //根据firstName去重 ()->newTreeSet<>(Comparator.comparing(ExamRoomModel::getId))),ArrayList::new));
java8过滤StudentExamState=0的数据
em.setNoLoginExamineeCount((examinee.stream().map(ExamineeEntity::getStudentExamState).filter(x-> x==0).collect(Collectors.toList())).size()); }
java8过滤ExamRoomStudentCount=0的数据
List<ExamRoomModel>filterList=examRoomModelLists.stream().filter(ExamRoomModel-> !Objects.equals(ExamRoomModel.getExamRoomStudentCount(),0)).collect(Collectors.toList());
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
推荐阅读
-
Java8中怎么正确高效的使用并行流
Java8中怎么正确高效的使用并行流这篇文章主要为大家展示了“Ja...
-
Java8如何使用CompletableFuture构建异步应用方式
Java8如何使用CompletableFuture构建异步应用方式...
-
基于Java8并行流有哪些需要注意的地方
这篇文章主要介绍了基于Java8并行流有哪些需要注意的地方,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大...
-
Java8中怎么将Array转换为Stream
本篇文章给大家分享的是有关Java8中怎么将Array转换为Stream,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇...
-
Java8中有哪些常用的时间api
这篇文章给大家介绍Java8中有哪些常用的时间api,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Insta...
-
如何在Java 8中引入lambda表达式
本篇文章给大家分享的是有关如何在Java8中引入lambda表达式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章...
-
怎么在Java8怎么在Map中新增数据
这期内容当中小编将会给大家带来有关怎么在Java8怎么在Map中新增数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文...
-
怎么在Java8中给forEach()函数提供index值
怎么在Java8中给forEach()函数提供index值?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细...
-
DateTimeFormatter与SimpleDateFormat在Java8中有什么区别
今天就跟大家聊聊有关DateTimeFormatter与SimpleDateFormat在Java8中有什么区别,可能很多人都不太...
-
Java8中groupBy实现集合的分组
这篇文章主要介绍Java8中groupBy实现集合的分组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!场景...