gpt4 book ai didi

java - 将 ArrayList 存储为 TreeMap Java 中的键

转载 作者:行者123 更新时间:2023-12-01 06:53:04 24 4
gpt4 key购买 nike

我将 arrayList 存储为 TreeMap 中的键,但出现此异常

java.lang.ClassCastException:java.util.ArrayList无法转换为java.lang.Comparable

我将数组的内容复制到 ArrayList 并尝试将该 arrayList 存储为 Map 中的键我的代码是:

TreeMap< ArrayList<Integer> , Integer > bandsMap = new TreeMap< ArrayList<Integer> , Integer >(); 
ArrayList< Integer > erfcn = new ArrayList< Integer >();

for (int index = 0; index < frequencies.length; index++)
erfcn.add(frequencies[index]);

bandsMap.put( erfcn , band_number);

for (Integer value : bandsMap.values()) {
System.out.println("Value = " + value + "\n");
}

有什么想法吗?谢谢

最佳答案

树形图按排序顺序维护其键。 ArrayList 类没有定义任何顺序,因此不能直接用作键。不过,您可以提供外部比较器来施加顺序,但您必须定义对您有意义的顺序:

TreeMap<ArrayList<Integer>, Integer> bandsMap = new TreeMap<>(
new Comparator<ArrayList<Integer>>() {
public int compare(ArrayList<Integer> lst1, ArrayList<Integer> lst2) {
// return 1 if lst1 > lst2, 0 if equal, -1 if lst1 < lst2
}
});

或者,如果您不必按任何特定顺序维护键,请改用 HashMap

关于java - 将 ArrayList<Integer> 存储为 TreeMap Java 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19858975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com