Wea*_*nds 0 java arraylist map treemap
我在一个TreeMap中存储了一个arrayList作为我的键,但是我得到了这个异常
java.lang.ClassCastException:java.util.ArrayList无法强制转换为java.lang.Comparable
我将数组的内容复制到ArrayList并尝试将该arrayList存储为Map My Code中的我的键:
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");
}
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?谢谢
树映射按排序顺序维护其键.在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
}
});
Run Code Online (Sandbox Code Playgroud)
或者,如果您不必按任何特定顺序维护密钥,请使用HashMap替代密钥.
| 归档时间: |
|
| 查看次数: |
2077 次 |
| 最近记录: |