Como Converter Lista para Array em Java

Hassan Saeed 12 outubro 2023
  1. Converter uma lista em um array de em Java
  2. Utilize toArray() para Converter uma lista em um array de tipos de referência em Java
  3. Utilize stream() para converter uma lista para um array em Java
Como Converter Lista para Array em Java

Este tutorial discute métodos para converter uma lista para uma array em Java.

Converter uma lista em um array de em Java

Este método simplesmente cria uma nova array com o mesmo tamanho da lista e faz iterações sobre a lista preenchendo a array com elementos. O exemplo abaixo ilustra isto:

import java.util.*;
public class MyClass {
  public static void main(String args[]) {
    List<Integer> list = new ArrayList();
    list.add(1);
    list.add(2);
    int[] array = new int[list.size()];
    for (int i = 0; i < list.size(); i++) array[i] = list.get(i);
  }
}

A array resultante contém todos os elementos da lista. Note que este método não deve ser usado se a array resultante for de tipos não-primitivos.

Utilize toArray() para Converter uma lista em um array de tipos de referência em Java

Este método é usado se a lista contém elementos de tipos de referência, tais como objetos de uma classe. Podemos utilizar o método embutido toArray() para converter uma lista desse tipo em um array. O exemplo abaixo ilustra isto:

import java.util.*;

public class MyClass {
  public static void main(String args[]) {
    // Define the Foo class
    class Foo {
      private int value;

      public Foo(int value) {
        this.value = value;
      }

      public int getValue() {
        return value;
      }
    }

    // Create instances of Foo
    Foo obj1 = new Foo(42);
    Foo obj2 = new Foo(99);

    // Create a List of Foo objects
    List<Foo> list = new ArrayList<>();
    
    // Add the obj1 and obj2 to the list
    list.add(obj1);
    list.add(obj2);

    // Convert the list to an array
    Foo[] array = list.toArray(new Foo[0]);

    // Print the values from the array
    for (Foo foo : array) {
      System.out.println("Value: " + foo.getValue());
    }
  }
}

Utilize stream() para converter uma lista para um array em Java

Para Java 8 e acima, também podemos utilizar o método Stream API’s stream() para converter uma lista para uma array em Java. O exemplo abaixo ilustra isto:

import java.util.*;
public class MyClass {
 public static void main(String args[]) {
   List<Integer> list = new ArrayList<>();
   list.add(1);
   list.add(2);
   Integer[] integers = list.stream().toArray(Integer[] ::new);

   // Print the converted array
   System.out.println(Arrays.toString(integers));
 }
}

Artigo relacionado - Java Array