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.