Автор оригинала: mkyong.
В java.util. Массивы$ArrayList
– это вложенный класс внутри Массивы
класс. Это список фиксированного размера или неизменяемый список, поддерживаемый массивом.
public staticList asList(T... a) { return new ArrayList<>(a); } /** * @serial include */ private static class ArrayList extends AbstractList implements RandomAccess, java.io.Serializable { private static final long serialVersionUID = -2764017481108945198L; private final E[] a; ArrayList(E[] array) { a = Objects.requireNonNull(array); } //... }
Метод Arrays.asList
возвращает этот класс java.util. Массивы$ArrayList
.
Listlist = Arrays.asList("1", "2", "3", "4", "5"); System.out.println(list.getClass()); // class java.util.Arrays$ArrayList
Исключение UnsupportedOperationException
Если мы изменим неизменяемый список, он вызовет Исключение UnsupportedOperationException
.
// immutable list Listlist = Arrays.asList("1", "2", "3", "4", "5"); list.remove("3");
Выход
Exception in thread "main" java.lang.UnsupportedOperationException: remove at java.base/java.util.Iterator.remove(Iterator.java:102) at java.base/java.util.AbstractCollection.remove(AbstractCollection.java:299)
С другой стороны, автономный java.util. Класс ArrayList
возвращает изменяемый список; он позволяет нам изменять список.
Listlist = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); list.remove("3"); // no exception
Рекомендации
Оригинал: “https://mkyong.com/java/what-is-java-util-arraysarraylist/”