HOWTO · Java

Inicializar uma ArrayList em Java

O artigo introduz métodos para inicializar uma ArrayList numa só linha

Nesta página

Este tutorial discute métodos para inicializar uma ArrayList com valores numa linha em Java. É útil para testes e codificação minimalista.

Utilize Arrays.asList para inicializar uma ArrayList em Java

É relativamente mais fácil inicializar uma lista em vez de uma ArrayList em Java com valores iniciais numa só linha. No entanto, se necessário, pode ser convertida para uma ‘ArrayList’. O exemplo abaixo ilustra ambas as formas.

import java.util.*;

public class Main {
  public static void main(String[] args) {
    // Initialize a list
    List<String> cities = Arrays.asList("Amsterdam", "Paris", "London");

    // Initialize an ArrayList
    ArrayList<String> cities_AL = new ArrayList<>(Arrays.asList("Amsterdam", "Paris", "London"));

    System.out.println(cities);
    System.out.println(cities_AL);
  }
}

Resultado:

[Amsterdam, Paris, London]
[Amsterdam, Paris, London]

A única diferença entre cities e cities_AL é que uma é uma List e a outra é uma ArrayList.

Utilize new ArrayList() Inicializar uma ArrayList em Java

Outro método para inicializar uma ArrayList é a utilização da função new ArrayList(). É possível pré-atribuir todos os valores numa única linha de código.

import java.util.*;

public class Main {
  public static void main(String[] args) {
    // Pre assign the values
    ArrayList<String> cities = new ArrayList<String>() {
      {
        add("Amsterdam");
        add("Paris");
        add("London");
      }
    };

    System.out.println(cities);
  }
}

Resultado:

[Amsterdam, Paris, London]

Utilize List.of() para inicializar uma ArrayList em Java

Em Java9 ou mais tarde, podemos utilizar o método List.of() em vez de Arrays.asList() para inicializar uma ArrayList em Java. O exemplo abaixo ilustra isto.

import java.util.*;

public class Main {
  public static void main(String[] args) {
    // Initialize a List
    List<String> strings = List.of("foo", "bar", "baz");
    System.out.println(strings);

    // Initialize an ArrayList
    ArrayList<String> strings_a = new ArrayList<>(List.of("foo", "bar", "baz"));
    System.out.println(strings_a);
  }
}

Resultado:

[foo, bar, baz]
[foo, bar, baz]

Utilize Stream para inicializar uma ArrayList em Java

Podemos também utilizar o Stream para inicializar uma ArrayList em Java. O exemplo abaixo ilustra isto.

import java.util.*;
import java.util.stream.*;
public class Main {
  public static void main(String[] args) {
    ArrayList<String> places = new ArrayList<>(
        Stream.of("Buenos Aires", "Córdoba", "La Plata").collect(Collectors.toList()));

    System.out.println(places);
  }
}

Resultado:

[Buenos Aires, Córdoba, La Plata]

Discutimos várias formas de inicializar uma ArrayList em Java em apenas uma linha com valores pré-atribuídos neste artigo.