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中的值去重
这样一行代码就可以过滤出需要的结果,对于代码重构优化有很大效率提升