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中的值去重

这样一行代码就可以过滤出需要的结果,对于代码重构优化有很大效率提升
posted @ 2020-01-09 09:26  HalleyZ  阅读(14089)  评论(0编辑  收藏  举报