Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我正在对地图进行排序,但原始地图不会受到影响_Java - Fatal编程技术网

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中,如果您有一些包含两层以上泛型的数据,那么可能是时候开始定义一些类了。地图可能太复杂了,无法跟踪。