Инициализация ArrayList в Java

Java ArrayList представляет собой массив объектов с изменяемым размером, который позволяет нам добавлять, удалять, находить, сортировать и заменять элементы. ArrayList является частью фреймворка Collection и реализуется в интерфейсе List.

Мы можем инициализировать ArrayList несколькими способами в зависимости от требований. В этом уроке мы научимся инициализировать ArrayList на основе некоторых часто встречающихся вариантов использования.

 // 1 - Пустой ArrayList с начальной емкостью 10ArrayList<Строка> список = новый ArrayList<>();//2 - Пустой ArrayList с начальной емкостью 64ArrayList<Строка> список = новый ArrayList<>( 64 );//3 - Инициализация и заполнение arraylist в одной строкеArrayList<String> names = new ArrayList<>( Arrays.asList(...) );ArrayList<String> names = new ArrayList<>( List.of(...) );//4 - Инициализация arraylist из существующей коллекцииArrayList<Строка> список = новый ArrayList<>(коллекция);//5 - Собрать элементы потокаСписок<Строка> список = stream.collect(Collectors.toCollection(ArrayList::new));

1. Инициализация ArrayList в одну строку

Создание и инициализация ArrayList в разных операторах иногда, кажется, генерирует ненужный шаблонный код. Мы можем оптимизировать создание ArrayList, используя следующие способы.

1.1. Используйте Arrays.asList() для инициализации ArrayList из массива

Чтобы инициализировать ArrayList в однострочном операторе, получите все элементы из массива с помощью метода Arrays.asList и передайте аргумент массива конструктору ArrayList.

ArrayList<String> names = new ArrayList<>( Arrays.asList("alex", "brian", "charles") );

1.2 Использование List.of() [Java 9 и выше]

Мы можем использовать статические методы фабрики List.of() для создания неизменяемых списков. Единственным недостатком является то, что операция add() не поддерживается в этих списках.

ArrayList<String> names = new ArrayList<>( List.of("alex", "brian", "charles") );

2. Инициализация ArrayList с помощью конструкторов

Использование конструктора ArrayList является традиционным подходом. Мы инициализируем пустой ArrayList(с начальной емкостью по умолчанию 10) с помощью конструктора без аргументов и добавляем элементы в список с помощью метода add().

ArrayList<String> names = new ArrayList<>();names.add("alex"); //Adding a single element at a timenames.add("brian");names.add("charles");

При желании конструктор ArrayList принимает необязательный параметр initialCapacity. Он должен быть положительным целым числом и обозначать начальную емкость списка. Начальная емкость представляет собой количество элементов, которые ArrayList может содержать без изменения размера своего внутреннего массива.

В следующем примере создается arraylist целых чисел с начальной емкостью 64. Это означает, что изменение размера списка произойдет при добавлении 65-го элемента. Для первых 64 элементов, избегая операции изменения размера, мы улучшаем производительность.

ArrayList<Integer> list = new ArrayList<>(64);

Мы можем добавлять элементы по одному или передавать другую коллекцию в addAll() элементы за один шаг. Это полезно при инициализации arraylist значениями или существующими объектами из другой коллекции любого типа.

HashMap<String, Integer> details = new HashMap<>();details.put("keanu", 23);details.put("max", 24);details.put("john", 53);names.addAll(details.keySet()); //Adding multiple elements in ArrayList

3. Инициализация ArrayList из потока Java 8

Поток представляет собой последовательность элементов, которая позволяет выполнять операции над коллекциями объектов в стиле функционального программирования. Мы также можем собирать объекты из потока в новый ArrayList.

Stream<String> stream = Stream.of("alex", "brian", "charles");ArrayList<String> stringList = stream//perform stream operations.collect(Collectors.toCollection(ArrayList::new));

Вот и все об инициализации ArrayList в Java. Пишите мне свои вопросы в комментариях.

Прокрутить вверх