1.多条件分组,返回有序linkedHashMap
LinkedHashMap<String, List<Map<String, Object>>> Group1 = listMap.stream()
.collect(Collectors.groupingBy(e -> PS2IdFetchGroupKey(e), LinkedHashMap::new, Collectors.toList())
private static String PS2IdFetchGroupKey(Map<String, Object> map) {
String groupKey = "";
if (null != map.get("PS2Id")) {
groupKey = groupKey + map.get("PS2Id").toString();
}
return groupKey;
}
2.多条件排序
PS2SalesBizImpl对应当前类名
List<Map<String, Object>> newListMap = salesmanIdListMap.stream().sorted(Comparator.comparing(PS2SalesBizImpl :: comparingByTerminalIdwholeUnit2).reversed().thenComparing(PS2SalesBizImpl :: comparingByPS2IdwholeUnit2).reversed())
.collect(Collectors.toList());
private static double comparingByTerminalIdwholeUnit2(Map<String, Object> map){
return (double) map.get("terminalIdwholeUnit2");
}
private static double comparingByPS2IdwholeUnit2(Map<String, Object> map){
return (double) map.get("PS2IdwholeUnit2");
}