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

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

1. ОбзорArrayList

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

Для введения в использованиеArrayList см.to this article here.

2. AddAllс

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

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

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

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

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

3. Collections.addAllс

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

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

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

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

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

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

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

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

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

List source = ...;
List target = ...;

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

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

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

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

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

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

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

В приведенном выше примере мы добавляем элементы изsource вtarget с помощью методаaddAll.

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

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

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