java8 对List<对象>获取某个属性并去重


  java8 的函数式编程简直不要太顺畅,可大幅度简化代码,例如下面场景:

  List保存若干对象,需要过滤出对象的部门属性,并且去重组成list

  在java8之前,这样的需求需要循环list,并使用map存储结果,现在只需要一行代码,如下:

   List<PersonInfo> list=mapper.getPersonInfoList();//此处是你需要过滤的对象list

List<String> entitySet=list.stream().map(PersonInfo::getDepartment).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());

1、map方法,将对象PersonInfo 的department属性组织成list
2、stream().distinct():将list中的值去重

这样一行代码就可以过滤出需要的结果,对于代码重构优化有很大效率提升


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM