HOWTO · Java

Como Converter Lista Inteira para Inteiro Array em Java

Este artigo explica como converter uma lista de objetos Inteiros em um array de int primitivos com o melhor método disponível em Java

Neste tutorial, apresentaremos como podemos converter uma List<Integer> para int[]em Java. Podemos ver que ambos são de diferentes tipos de dados que é a ArrayList of Integers e a array of int. O primeiro contém um tipo de dado objeto, ou seja, Integer, e o segundo é um tipo de dado primitivo, ou seja, int.

Stream().mapToInt() para Converter Lista Inteira para Int. Array em Java

O Stream é introduzido no Java 8 com o pacote java.util.stream. Ele pode nos ajudar a obter os resultados desejados porque inclui um método mapToInt() que retorna um IntStream (uma seqüência de valores int primitivos).

Para deixar isso mais claro, vamos vê-lo no exemplo abaixo.

import java.util.ArrayList;
import java.util.List;

public class Main {
  public static void main(String[] args) {
    List<Integer> numList = new ArrayList<Integer>();
    numList.add(11);
    numList.add(22);
    numList.add(33);
    numList.add(44);
    numList.add(55);

    int[] numArray = numList.stream().mapToInt(i -> i).toArray();

    for (int intValue : numArray) {
      System.out.println(intValue);
    }
  }
}

Resultado:

int primitive: 11
int primitive: 22
int primitive: 33
int primitive: 44
int primitive: 55

Podemos verificar duas vezes o tipo de dados numArray através de depuração. A saída de depuração abaixo mostra que a numList é uma ArrayList, enquanto a numArray é uma int primitiva.

numList = {ArrayList @832} size = 5 numArray = {int[5] @833} intValue = 11

ArrayUtils.toPrimitive()para Converter Lista Inteira para Inteiro Array em Java

Temos outra forma de fundir uma List<Integer> para um tipo int[]. Vamos utilizar o Apache Common Lang, que é um array de métodos de ajuda.

ArrayUtils.toPrimitive() permite-nos passar em nossa numList que nos dá o resultado em int[] datatype.

import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils;

public class Main {
  public static void main(String[] args) {
    List<Integer> numList = new ArrayList<Integer>();
    numList.add(110);
    numList.add(220);
    numList.add(330);
    numList.add(440);
    numList.add(550);

    int[] intArray = ArrayUtils.toPrimitive(numList.toArray(new Integer[numList.size()]));
    for (int intValue : intArray) {
      System.out.println("int primitive: " + intValue);
    }
  }
}

Resultado:

int primitive: 110
int primitive: 220
int primitive: 330
int primitive: 440
int primitive: 550

Método de Guava para converter a Lista Inteira em Inteiro Array em Java

A Guava é uma biblioteca que pode nos ajudar a converter nossa lista de Integers em valores primitivos de int.

Ints.toArray(ListOfIntegers) é uma parte do pacote com.google.common.primitives.Ints que toma nossa lista como argumento e nos fornece o array de ints.

import com.google.common.primitives.Ints;
import java.util.ArrayList;
import java.util.List;

public class Main {
  public static void main(String[] args) {
    List<Integer> numList = new ArrayList<Integer>();
    numList.add(110);
    numList.add(220);
    numList.add(330);
    numList.add(440);
    numList.add(550);

    int[] numArray = Ints.toArray(numList);
    for (int intValue : numArray) {
      System.out.println("int primitive: " + intValue);
    }
  }
}

Resultado:

int primitive: 110
int primitive: 220
int primitive: 330
int primitive: 440
int primitive: 550