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

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

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

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

 

List entitySet=curNodeList.stream().map(AMTTrackingTbFeedbackinfoDTO::getEntity).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
1、map方法,将对象AMTTrackingTbFeedbackinfoDTO 的entity属性组织成list
2、stream().distinct():将list中的值去重

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

你可能感兴趣的:(java8 对List<对象>获取某个属性并去重)