java - ClassCastException : java. util.ArrayList 不可比较

标签 java hashmap mapping treemap

我的 HashMap 中有两个数组,我想根据 timeStampArray 中的时间对averageValueArray 中存储的值进行排序。我正在使用 TreeMap 但收到 ClassCastException ,它表示 ArrayList 不具有可比性。

这就是我正在做的事情:

Map<List<Date>,List<Double>> sortMap = new HashMap<List<Date>,List<Double>>();
            sortMap.put(timeStampArray, averageValueArray);

            for (Map.Entry entry : sortMap.entrySet()) {
                System.out.println("Key = " + entry.getKey());
                System.out.println(" Value = " +entry.getValue());

            }
            System.out.println("Unsort Map......");
            printMap(sortMap);

            System.out.println("Sorted Map......");
            TreeMap<List<Date>,List<Double>> treeMap = new TreeMap<List<Date>,List<Double>>(sortMap);
            for (Map.Entry entry : treeMap.entrySet()) {
                System.out.println("Key = " + entry.getKey());
                System.out.println(" Value = " +entry.getValue());

            }


            printMap(treeMap);

printMap 是:

public static void printMap(Map<List<Date>,List<Double>> map) {
for (Map.Entry entry : map.entrySet()) {
    System.out.println("Key : " + entry.getKey() + " Value : "
        + entry.getValue());}}

最佳答案

正如错误消息所述,ArrayList 没有实现 TreeMap 所需的 Comparable 接口(interface)来对元素进行排序 map 。不过,您可以使用采用 Comparator 的构造函数来创建 TreeMap,并根据您的排序规则实现比较器。

关于java - ClassCastException : java. util.ArrayList 不可比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16891173/

相关文章:

java - 为 hashCode 和 equals 禁用 checkstyle

java - Android 注册安全提供者

haskell - 高性能 Haskell 哈希结构。

python pandas - 如何将 1 个数据帧中的值映射到另一个数据帧中的索引而不循环?

java - 如何在JDOM中写入xml属性值?

java - 有关于在 GAE (Java) 上设置模板框架的教程吗?

hashmap - 如何从 dataweave 2.0 中的有效负载访问 hashmap 值?

java - 将数组分配为映射的键和值

swift - 地幔忽略 JSON 中的键

javascript - React 中 Object.keys().map 的 onChange 处理程序以更新对象属性