我试图在方法中对地图进行排序。但原始地图没有排序。我知道我正在创建一个新的地图实例,并将原始地图分配给新地图实例并对其进行排序。但是我如何在这里对原始地图进行排序
private void sortData(Map<String, Map<String, List<String>>> resultData) {
System.out.println("result data before sort : "+resultData);
Map<String, List<String>> sortedData = new TreeMap(Collections.reverseOrder());
for(Map.Entry<String, Map<String, List<String>>> modEntry : resultData.entrySet()) {
sortedData.putAll(modEntry.getValue());
System.out.println("Sorted : "+sortedData);
for (Iterator<Entry<String, List<String>>> iterator = sortedData.entrySet().iterator(); iterator.hasNext();) {
Entry<String, List<String>> entry = (Entry<String, List<String>>)iterator.next();
List<String> stats = (List<String>)entry.getValue();
Collections.sort(stats, new Comparator<String>() {
DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public int compare(String o1, String o2) {
try {
return f.parse(o2).compareTo(f.parse(o1));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
});
}
}
System.out.println("result date after sort : "+resultData);
}
这里我的原始地图是&#39; resultData&#39;。我反向排序&#39; resultData&#39;的价值。通过创建树图的新实例来按键。排序后,原始数据仍未排序。我知道我正在排序不同的地图并期望对不同的地图进行排序,但如何对原始地图进行排序?
答案 0 :(得分:0)
我添加了resultData.put(modEntry.getKey(),sortedData);在外部for循环中它解决了问题。