Adicionar vários itens a um Java ArrayList

Adicionar vários itens a um Java ArrayList

1. Visão geral deArrayList

Neste tutorial rápido, mostraremos como adicionar vários itens a umArrayList já inicializado.

Para obter uma introdução ao uso deArrayList, consulteto this article here.

2. AddAll

Primeiro de tudo, vamos apresentar uma maneira simples de adicionar vários itens em umArrayList.

Primeiro, usaremosaddAll(), que leva uma coleção como argumento:

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

É importante ter em mente que os elementos adicionados na primeira lista farão referência aos mesmos objetos que os elementos emanotherList.

Por esse motivo, todas as alterações feitas em um desses elementos afetarão ambas as listas.

3. Collections.addAll

A classeCollections consiste exclusivamente em métodos estáticos que operam ou retornam coleções.

Um deles éaddAll, que precisa de uma lista de destinos e os itens a serem adicionados podem ser especificados individualmente ou como uma matriz.

Aqui está um exemplo de como usá-lo com elementos individuais:

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

E outro para exemplificar a operação com duas matrizes:

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

De maneira semelhante à explicada na seção acima, o conteúdo de ambas as listas aqui se referirá aos mesmos objetos.

4. Usando Java 8

Esta versão do Java abre nossas possibilidades adicionando novas ferramentas. O que vamos explorar nos próximos exemplos éStream:

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

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

As principais vantagens dessa maneira são a oportunidade de usar filtros e pular. No próximo exemplo, vamos pular o primeiro elemento:

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

É possível filtrar os elementos de acordo com nossas necessidades. Por exemplo, o valor Inteiro:

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

Por fim, há cenários em que queremos trabalhar de forma segura para nulos. Para aqueles, podemos usarOptional:

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

No exemplo acima, estamos adicionando elementos desource atarget pelo métodoaddAll.

5. Conclusão

Neste artigo, exploramos diferentes maneiras de adicionar vários itens a umArrayList já inicializado.

Como sempre, as amostras de código podem ser encontradasover on GitHub.