java8Stream的方法 实例说明
利用新特性分组得到结果
List.stream()…
Map<String, List<PmsYearMtPlanMonthToDevVo>> collect =
pmsYearMtPlanMonthToDevVos.stream()
.collect(
Collectors.groupingBy(
/**
* v== pmsYearMtPlanMonthToDevVos 集合
* 分组条件为 v.getMonth() + "_" + v.getTypeName() 为 key
* 转化成 LinkedHashMap
* 最后用 Collectors.toList() 把 分组后的对象转化成集合
*/
v -> v.getMonth() + "_" + v.getTypeName(),
// LinkedHashMap 有序存储
LinkedHashMap::new,
Collectors.toList()));
利用新特性过滤得到结果
List<String> janVos =
keys.stream()
/**
* i == keys 集合
* 过滤条件为 i.split("_")[0].equals(String.valueOf(1)
*/
.filter(i -> i.split("_")[0].equals(String.valueOf(1)))
.collect(Collectors.toList());
利用新特性得到某个对象的属性的集合并用、分割
devNames =
mtPlanMonthToDevVos.stream()
/**
* map(PmsYearMtPlanMonthToDevVo::getName) 得到PmsYearMtPlanMonthToDevVo::getName集合
* ollectors.joining("、") 用、分割
*/
.map(PmsYearMtPlanMonthToDevVo::getName)
.collect(Collectors.joining("、"));