集合:List<Map>
1.模板集合
public static List<Map<String,Object>> of(){ String json = "[" + "{\"name\":\"更換配件\",\"value\":\"0\"}," + "{\"name\":\"其他維修\",\"value\":\"0\"}," + "{\"name\":\"返廠維修\",\"value\":\"0\"}" + "]"; List<Map<String, Object>> list = (List<Map<String, Object>>) JSONArray.parse(json); return list; }
2.構建
//1.從數據庫中獲取數據(db) List<Map<String, Object>> list = this.machinelifeHardwareLogsService.maintenanceTypeStatistics(vo); //2.構造圖表所需字段,合並集合(模板) List<Map<String, Object>> mapList = of(); mapList.addAll(list); //3.構造響應數據 List<Map<String, Object>> data = mapList.stream() .collect(Collectors.groupingBy(group -> group.get("name"))) .entrySet() .stream() .map(m -> m.getValue().stream() .flatMap(o -> o.entrySet().stream()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (m1, m2) -> m2))) .collect(toList());
3.應用場景:圖表、集合合並分組構建數據等場景,主要流程為:
3-1.觀察數據庫查出來的數據是什么格式 ,然后格式定義和初始化好數據結構模板
3-2.將db數據合並到模板數據中
3-3.通過stream流分組並重構該數據