期望得到这样的顺序B2--1月---{TASKDATE=1月, SDATE=null, DATEID=null, BASETYPE=B2, XSDATE=B2-1月, BLU APP类1=19000.0, BLU APP类=2000.0, Sorting数量=91000, Sorting不良率=50}
目前这个那顺序有点乱
private static void name4() {
List<LinkedHashMap<String, Object>> list = new ArrayList<LinkedHashMap<String, Object>>();
ArrayList<LinkedHashMap<String, Object>> res = new ArrayList<LinkedHashMap<String, Object>>();
List<HashMap<String, Object>> resm = new ArrayList<HashMap<String, Object>>();
LinkedHashMap<String, Object> map1= new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map2 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map3 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map4 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map5 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map6 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map7= new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map8 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map9 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map10 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map11 = new LinkedHashMap<String, Object>();
LinkedHashMap<String, Object> map12 = new LinkedHashMap<String, Object>();
map1.put("TASKDATE", "1月");
map1.put("BASETYPE", "B1");
map1.put("TYPE", "BLU APP类");
map1.put("PPM", "50");
map1.put("TYPENUMBER", "2000");
map1.put("TASKNUMBER", "91000");
map7.put("TASKDATE", "1月");
map7.put("BASETYPE", "B1");
map7.put("TYPE", "BLU APP类1");
map7.put("PPM", "50");
map7.put("TYPENUMBER", "2000");
map7.put("TASKNUMBER", "91000");
map2.put("TASKDATE", "2月");
map2.put("BASETYPE", "B1");
map2.put("TYPE", "BLU APP类1");
map2.put("PPM", "50");
map2.put("TYPENUMBER", "1000");
map2.put("TASKNUMBER", "1000");
map8.put("TASKDATE", "2月");
map8.put("BASETYPE", "B1");
map8.put("TYPE", "BLU APP类");
map8.put("PPM", "50");
map8.put("TYPENUMBER", "2000");
map8.put("TASKNUMBER", "1000");
map3.put("TASKDATE", "3月");
map3.put("BASETYPE", "B1");
map3.put("TYPE", "BLU APP类1");
map3.put("PPM", "50");
map3.put("TYPENUMBER", "18000");
map3.put("TASKNUMBER", "391000");
map9.put("TASKDATE", "3月");
map9.put("BASETYPE", "B1");
map9.put("TYPE", "BLU APP类");
map9.put("PPM", "50");
map9.put("TYPENUMBER", "2000");
map9.put("TASKNUMBER", "391000");
map4.put("TASKDATE", "1月");
map4.put("BASETYPE", "B2");
map4.put("TYPE", "BLU APP类1");
map4.put("PPM", "50");
map4.put("TYPENUMBER", "19000");
map4.put("TASKNUMBER", "91000");
map10.put("TASKDATE", "1月");
map10.put("BASETYPE", "B2");
map10.put("TYPE", "BLU APP类");
map10.put("PPM", "50");
map10.put("TYPENUMBER", "2000");
map10.put("TASKNUMBER", "91000");
map5.put("TASKDATE", "2月");
map5.put("BASETYPE", "B2");
map5.put("TYPE", "BLU APP类1");
map5.put("PPM", "50");
map5.put("TYPENUMBER", "19000");
map5.put("TASKNUMBER", "91000");
map11.put("TASKDATE", "2月");
map11.put("BASETYPE", "B2");
map11.put("TYPE", "BLU APP类");
map11.put("PPM", "50");
map11.put("TYPENUMBER", "2000");
map11.put("TASKNUMBER", "91000");
map6.put("TASKDATE", "3月");
map6.put("BASETYPE", "B2");
map6.put("TYPE", "BLU APP类1");
map6.put("PPM", "50");
map6.put("TYPENUMBER", "19000");
map6.put("TASKNUMBER", "591000");
map12.put("TASKDATE", "3月");
map12.put("BASETYPE", "B2");
map12.put("TYPE", "BLU APP类");
map12.put("PPM", "50");
map12.put("TYPENUMBER", "2000");
map12.put("TASKNUMBER", "591000");
list.add(map1);
list.add(map7);
list.add(map2);
list.add(map8);
list.add(map3);
list.add(map9);
list.add(map4);
list.add(map10);
list.add(map5);
list.add(map11);
list.add(map6);
list.add(map12);
List<Object> tempList = (List<Object>) list.stream().map(pc -> pc.get("BASETYPE")).distinct().collect(Collectors.toList());
Map<String, List<Map<String, Object>>> onekeyMap = new LinkedHashMap<>();
for (LinkedHashMap<String, Object> obj : list) {
String one = "";
//根据groupList的第一层
one = obj.get("BASETYPE").toString();
//
if (null == onekeyMap.get(one)) {
onekeyMap.put(one,new ArrayList<>() );
}
onekeyMap.get(one).add(obj);
}
System.out.println(onekeyMap);
System.out.println("----------------------------");
ArrayList<LinkedHashMap<String, Object>> result = new ArrayList<LinkedHashMap<String, Object>>();
for (Map.Entry<String, List<Map<String, Object>>> oneEntry : onekeyMap.entrySet()) {
List<Map<String, Object>> resultList = new ArrayList<>();
LinkedHashMap<String, Object> twoMap = new LinkedHashMap<>();
LinkedHashMap<String, Object> twoMapx = new LinkedHashMap<>();
List<Map<String, Object>> twoList = oneEntry.getValue();
List<Object> tempListDate = (List<Object>) twoList.stream().map(pc -> pc.get("TASKDATE")).distinct().collect(Collectors.toList());
// System.out.println(oneEntry.getKey());
System.out.println(twoList);
System.out.println("============================");
for(Object x : tempListDate) {
LinkedHashMap<String, Object> newmap = new LinkedHashMap<>();
LinkedHashMap<String, Object> Nummap = new LinkedHashMap<>();
for (int i = 0; i < twoList.size(); i++) {
Map<String, Object> map = twoList.get(i);
Nummap.put("Sorting数量", map.get("TASKNUMBER").toString());
Nummap.put("Sorting不良率", map.get("PPM").toString());
//if(x+"-"+oneEntry.getKey()).equals(map.get("TASKDATE")+"-"+map.get("BASETYPE"))) {
if(oneEntry.getKey().equals(map.get("BASETYPE"))) {
if (x.equals(map.get("TASKDATE"))) {
Double sortingBadRatio = 0.0 ;//不良率;
Double taskNum = 0.0; //sorting数量
Double typeNum = 0.0; //分类的数量
newmap.put("TASKDATE", map.get("TASKDATE"));
newmap.put("SDATE", map.get("SDATE"));
newmap.put("DATEID", map.get("DATEID"));
newmap.put("BASETYPE",oneEntry.getKey() );
newmap.put("XSDATE", oneEntry.getKey()+"-"+x);
taskNum = Double.parseDouble(map.get("TASKNUMBER").toString());
sortingBadRatio = Double.parseDouble(map.get("PPM").toString()) ;
//newmap.put("Sorting数量", DateFormatList.getDecimalAuto(taskNum));
//newmap.put("Sorting不良率", DateFormatList.getDecimalAuto(sortingBadRatio));
typeNum= Double.parseDouble(map.get("TYPENUMBER").toString());
newmap.put(map.get("TYPE").toString(), DateFormatList.getDecimalAuto(typeNum));
}else {
continue;
//newmap = new LinkedHashMap<>();
}
}else {
//newmap.put("Sorting数量", map.get("TASKNUMBER").toString());
//newmap.put("Sorting不良率", map.get("PPM").toString());
continue;
}
// Nummap.putAll(newmap);
newmap.putAll(Nummap);
//newmap.put("Sorting数量", map.get("TASKNUMBER").toString());
//newmap.put("Sorting不良率", map.get("PPM").toString());
// System.out.println(oneEntry.getKey()+"--"+x+"---"+newmap+"--"+i);
}
System.out.println(oneEntry.getKey()+"--"+x+"---"+newmap);
resultList.add(newmap);
}
twoMap.put(oneEntry.getKey(), resultList) ;
//System.out.println(twoMap);
result.add(twoMap);
}
System.out.println("++++++++++++++++++++++++");
System.out.println(result);
System.out.println("++++++++++++++++++++++++");
//System.out.println(resultX);
}