Рубрики
Без рубрики

Что такое java.util. Массивы$ArrayList?

– Что такое java.util. Массивы$ArrayList?

Автор оригинала: mkyong.

В java.util. Массивы$ArrayList – это вложенный класс внутри Массивы класс. Это список фиксированного размера или неизменяемый список, поддерживаемый массивом.

    public static  List 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 .

  List list = Arrays.asList("1", "2", "3", "4", "5");

  System.out.println(list.getClass()); // class java.util.Arrays$ArrayList

Исключение UnsupportedOperationException

Если мы изменим неизменяемый список, он вызовет Исключение UnsupportedOperationException .

  // immutable list
  List list = 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 возвращает изменяемый список; он позволяет нам изменять список.

  List list = 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/”