#java
Допустим есть следующий код:
public static void main(String[] args) {
Integer[] mass = {1, 8, 9, 12, 15, 14, 17, 13};
List r = Arrays.asList(mass);
System.out.println(r.get(3));
System.out.println(r.remove(3));
}
r.get(3) возвращает какое-то значение а r.remove(3) кидает
UnsupportedOperationException
at java.util.AbstractList.remove
r.getClass().getName() возвращает java.util.Arrays$ArrayList
Насколько я понял метод asList класса Arrays возвращает экземпляр внутреннего класса
java.util.Arrays$ArrayList который имплементит List
метод get вроде нормально там реализован а метод remove перевызывает remove у AbsttactList
который кидает данное исключение.
Как можно из массива получить экземпляр нормального Arrayslist или LinkedList?
Ответы
Ответ 1
Попробуйте объявить r как ArrayList вместо List. При этом создав новый экземпляр ArrayList через конструктор ArrayList(List list): ArrayListr = new ArrayList<>( Arrays.asList(mass) ); Ответ 2
Судя по всему вам поможет ответ из аналогичного вопроса new ArrayList(Arrays.asList(array))
Комментариев нет:
Отправить комментарий