Класс Java ArrayList является частью фреймворка Collection и представляет собой реализацию структуры данных массива с изменяемым размером. Он автоматически увеличивается и уменьшается при добавлении или удалении элементов во время выполнения, когда это необходимо,
В этом руководстве по Java рассматриваются различные способы добавления нескольких элементов в ArrayList в одном операторе с использованием простых для понимания примеров Java.
1. Использование List.of() или Arrays.asList() для инициализации нового ArrayList
Инициализировать ArrayList с несколькими элементами в одной строке можно, создав Список элементов с помощью методов Arrays.asList() или List.of(). Оба метода создают неизменяемый Список, содержащий элементы, переданные в метод-фабрику.
В данном примере мы добавляем две строки, «a» и «b», в ArrayList.
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList("a", "b"));//orArrayList<String> arrayList = new ArrayList<>(List.of("a", "b"));
2. Использование Collections.addAll() для добавления элементов из существующего ArrayList
Чтобы добавить все элементы из другой коллекции в этот ArrayList, мы можем использовать метод Collections.addAll(), который добавляет все указанные элементы в заданный список. Обратите внимание, что элементы, которые нужно добавить, могут быть указаны по отдельности или в виде массива.
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList("a", "b"));Collections.addAll(arrayList, "c", "d");System.out.println(arrayList); //[a, b, c, d]
В качестве альтернативы мы можем использовать конструктор ArrayList, который принимает коллекцию и инициализирует ArrayList с элементами из коллекции аргументов. Это может быть полезно, если мы добавим всю коллекцию в этот ArrayList.
List<String> namesList = Arrays.asList( "a", "b", "c");ArrayList<String> instance = new ArrayList<>(namesList);
3. Использование Stream API для добавления только выбранных элементов
Этот метод использует Java Stream API. Мы создаем поток элементов из первого списка, добавляем filter(), чтобы получить только нужные элементы, а затем добавляем отфильтрованные элементы в другой список.
//List 1List<String> namesList = Arrays.asList( "a", "b", "c");//List 2ArrayList<String> otherList = new ArrayList<>(Arrays.asList( "d", "e"));//Do not add 'a' to the new listnamesList.stream().filter(name -> !"a".equals(name)).forEachOrdered(otherList::add);System.out.println(otherList); //[d, e, b, c]
В приведенных выше примерах мы научились добавлять несколько элементов в ArrayList. Мы добавили все элементы в ArrayList, а затем увидели пример добавления только выбранных элементов в ArrayList из API потока Java 8.