Перейти к основному содержимому

Добавить несколько элементов в список Java ArrayList

· 2 мин. чтения

1. Обзор ArrayList

В этом кратком руководстве мы покажем, как добавить несколько элементов в уже инициализированный ArrayList .

Для ознакомления с использованием ArrayList обратитесь к этой статье здесь .

2. Добавить все

Прежде всего, мы собираемся представить простой способ добавления нескольких элементов в список ArrayList .

Во- первых, мы будем использовать addAll() , которая принимает коллекцию в качестве аргумента:

List<Integer> anotherList = Arrays.asList(5, 12, 9, 3, 15, 88);
list.addAll(anotherList);

Важно помнить, что элементы, добавленные в первый список, будут ссылаться на те же объекты, что и элементы в otherList .

По этой причине каждое изменение, внесенное в один из этих элементов, повлияет на оба списка.

3. Коллекции.addAll

Класс Collections состоит исключительно из статических методов, которые работают с коллекциями или возвращают их.

Одним из них является addAll , для которого требуется список назначения, а добавляемые элементы могут быть указаны по отдельности или в виде массива.

Вот пример того, как использовать его с отдельными элементами:

List<Integer> list = new ArrayList<>();
Collections.addAll(list, 1, 2, 3, 4, 5);

И еще один для примера работы с двумя массивами:

List<Integer> list = new ArrayList<>();
Integer[] otherList = new Integer[] {1, 2, 3, 4, 5};
Collections.addAll(list, otherList);

Аналогично тому, как описано в предыдущем разделе, содержимое обоих списков здесь будет относиться к одним и тем же объектам.

4. Использование Java 8

Эта версия Java открывает наши возможности, добавляя новые инструменты. В следующих примерах мы рассмотрим Stream :

List<Integer> source = ...;
List<Integer> target = ...;

source.stream()
.forEachOrdered(target::add);

Основные преимущества этого способа — возможность использовать пропуск и фильтры. В следующем примере мы собираемся пропустить первый элемент:

source.stream()
.skip(1)
.forEachOrdered(target::add);

Можно фильтровать элементы по нашим потребностям. Например, целочисленное значение:

source.stream()
.filter(i -> i > 10)
.forEachOrdered(target::add);

Наконец, есть сценарии, в которых мы хотим работать с нулевым безопасным способом. Для них мы можем использовать Optional :

Optional.ofNullable(source).ifPresent(target::addAll)

В приведенном выше примере мы добавляем элементы из исходного кода в целевой с помощью метода addAll .

5. Вывод

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

Как всегда, образцы кода можно найти на GitHub .