stream对list中的两个字段进行分组以及重新排序
日常记录:
一: 需要对list集合进行分组,集合中两个字段能确定唯一性,所以要通过这两个字段去分组
Map<String, List<EmissionAllow>> result = list.stream() .collect(Collectors.groupingBy(EmissionAllowController::fetchGroupKey));
定义了个静态方法去对要分组的俩字段进行组合
public static String fetchGroupKey(EmissionAllow emissionAllow){ return emissionAllow.getEntCode() + "#" + emissionAllow.getYear(); }
二: stream.sorted排序用法
- 正序
List<MultipartData> multipartDataList = lists.get(0).stream().sorted((i1, i2) -> { return (int) (i1.getDoublePart("avgVal") - i2.getDoublePart("avgVal")); }).collect(Collectors.toList())
- 倒序
List<MultipartData> multipartDataList = lists.get(0).stream().sorted((i1, i2) -> { return (int) (i1.getDoublePart("avgVal") - i2.getDoublePart("avgVal")); }).collect(Collectors.toList());
上一篇:
通过多线程提高代码的执行效率例子