Java 我正在对地图进行排序,但原始地图不会受到影响
我正在尝试用一种方法对地图进行排序。但是原始地图没有得到排序。我知道我正在创建一个地图的新实例,并将原始地图分配给新的地图实例并对其进行排序。但是我如何在这里对原始地图进行排序Java 我正在对地图进行排序,但原始地图不会受到影响,java,Java,我正在尝试用一种方法对地图进行排序。但是原始地图没有得到排序。我知道我正在创建一个地图的新实例,并将原始地图分配给新的地图实例并对其进行排序。但是我如何在这里对原始地图进行排序 private void sortData(Map<String, Map<String, List<String>>> resultData) { System.out.println("result data before sort : "+resultData);
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);
}
这里我的原始地图是“resultData”。我通过创建树映射的新实例,按键对“resultData”的值进行反向排序。排序后,原始数据仍然未排序。我知道我正在对不同的地图进行排序,并希望对不同的地图进行排序,但如何对原始地图进行排序?我添加了resultData.putmodEntry.getKey,sortedData;在外部for循环中,它解决了这个问题。为什么不返回排序数据并使用它呢?我的排序数据是原始映射中的一个映射。我想把原始地图还给你。如果我必须返回已排序的数据,那么我必须通过另一个循环来assignresultData=sortedData;?我正在尝试对内部映射和内部映射中的列表进行排序,就像设计说明一样,在Java中,如果您有一些包含两层以上泛型的数据,那么可能是时候开始定义一些类了。地图可能太复杂了,无法跟踪。