Я храню в ArrayList, как мои ключи в TreeMap, но я получаю это исключениеСохранение ArrayList <Integer> как ключ в TreeMap Java
java.lang.ClassCastException: java.util.ArrayList не может быть приведен к Java. lang.Comparable
скопировать содержимое массива ArrayList и попытаться сохранить этот ArrayList как мои ключи в карте Мой код:
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");
}
Любая идея? Thanks
'java.util.ArrayList нельзя отнести к java.lang.Comparable'. 'List' не расширяет' Comparable', тогда на нем не определена операция сравнения с помощью метода compareTo (T o) '. Вы не можете использовать в качестве ключа карты. –
'TreeMap' сравнивает ключи перед их добавлением. Как вы думаете, что это будет сравнивать два экземпляра 'ArrayList'? Каковы критерии, определяющие, что список меньше/больше/равен другому? –
Вы хотите построить здание? –