Java ArrayList.addAll() – добавление нескольких элементов в список

Java ArrayList.addAll(collection) добавляет все элементы указанной коллекции в конец текущего ArrayList. Порядок добавляемых элементов такой же, как и у Iterator аргумента collection. Чтобы добавить один элемент в список, предпочтительнее использовать ArrayList.add().

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

 //Существующий массивArrayList arraylist = new ArrayList<>();//Коллекция элементов для добавления в arraylistСписок newElements = Arrays.asList("e", "f");//Добавление в конец arraylistarraylist.addAll(newElements); //добавление нескольких элементов//Добавление по указанному индексуarraylist.addAll(2, newElements); //добавление новых элементов по указанному индексу

1. Метод ArrayList addAll()

Метод addAll() сначала проверяет, достаточно ли места в списке. Если места в списке нет, то он увеличивает список, добавляя больше пробелов в резервный массив.

Затем addAll() добавляет новые элементы в конец списка или в указанную позицию индекса.

public boolean addAll(Collection<? extends E> c);public boolean addAll(int fromIndex, Collection<? extends E> c);
  • Аргумент метода – коллекция, содержащая элементы, которые необходимо добавить в этот список. Если присутствует аргумент fromIndex, элементы коллекции вставляются в указанную позицию индекса.
  • Возвращает – true, если в результате этот список изменился.
  • Выдает исключение NullPointerException, если указанная коллекция имеет значение null.

2. Примеры добавления коллекции в ArrayList

Для демонстрационных целей мы создали два ArrayList, содержащих строки. Первый ArrayList содержит 4 элемента, а второй ArrayList содержит 2 строки.

ArrayList<String> list1 = new ArrayList<>(); //list 1list1.add("A");list1.add("B");list1.add("C");list1.add("D");ArrayList<String> list2 = new ArrayList<>(); //list 2list2.add("E");list2.add("F");

2.1. Добавление элементов в конец ArrayList

По умолчанию метод addAll() добавляет элементы из коллекции аргументов в конец этого arraylist, для которого вызывается метод.

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

list1.addAll(list2);System.out.println(list1); //combined list

Вывод программы.

[A, B, C, D, E, F]

2.2 Добавление элементов в указанную позицию

Когда мы хотим добавить элементы списка по указанному индексу, мы можем передать это местоположение индекса в аргументе метода. Это также может помочь в добавлении элементов списка в начало этого arraylist, т.е. добавлении элементов в начало.

Например, давайте передадим 'fromIndex', в какое место метод вставит элементы из указанной коллекции. Мы вставляем элементы в позицию индекса 2, т. е. в середину текущего списка.

list1.addAll(2, list2);System.out.println(list1); //combined list

Вывод программы.

[A, B, E, F, C, D]

3. Заключение

Класс ArrayList очень гибкий и предоставляет множество удобных методов для добавления или удаления элементов из него. AddAll() — один из таких методов для добавления нескольких элементов в одном операторе.

Хотя, если обобщенные типы не используются, программист должен убедиться, что коллекция аргументов имеет тот же тип элементов, что и в текущем arraylist.

Исходный код на Github

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