преобразовать массив в List с помощью конструктора ArrayList [duplicate]

Предполагая, что вы не пытаетесь сделать что-то злонамеренное, все, что вы хотели бы сделать с вашими собственными URL-адресами, может быть запущено с помощью htaccess .

12
задан Roam 8 September 2014 в 18:11
поделиться

2 ответа

Когда вы вызываете Arrays.asList, он не возвращает java.util.ArrayList. Он возвращает java.util.Arrays$ArrayList, который является неизменным списком. Вы не можете добавить к нему, и вы не можете удалить его.

Если вы попытаетесь добавить или удалить элементы из них, вы получите UnsupportedOperationException

19
ответ дан SparkOn 16 August 2018 в 02:59
поделиться
  • 1
    Это не является неизменным. Вы можете использовать list.set (index, value) . Вы просто не можете изменить количество элементов – Назар Кулян 13 November 2017 в 19:26

Я немного расширю свой комментарий,

Одна проблема, которая может возникнуть, если вы используете asList, поскольку она не отличается от объекта ArrayList:

List list = Array.asList(array) ;
list.remove(0); //UnsupportedOperationException :(

Здесь вы не можете удалить элемент 0, потому что asList возвращает список фиксированного размера, поддерживаемый указанным массивом. Поэтому вы должны сделать что-то вроде:

List newList = new ArrayList(Arrays.asList(array));

, чтобы сделать newList модифицируемым.

13
ответ дан Maroun 16 August 2018 в 02:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: