HOWTO · Java
Converti lista di numeri interi in array Int in Java
Questo articolo spiega come convertire una lista di oggetti Integer in un array di int primitivo con il miglior metodo disponibile in Java
In questa pagina
In questo tutorial, introdurremo come convertire un List<Integer> in int[] in Java. Possiamo vedere che entrambi sono di diversi tipi di dati che è ArrayList of Integers e l’array di int. Il primo contiene un tipo di dati oggetto, ad esempio Integer, e il secondo è un tipo di dati primitivo, ad esempio int.
Stream().mapToInt() per convertire l’lista di numeri interi in Int Array in Java
Stream è stato introdotto in Java 8 con il pacchetto java.util.stream. Può aiutarci a ottenere i risultati desiderati perché include un metodo mapToInt() che restituisce un IntStream (una sequenza di valori int primitivi).
Per renderlo più chiaro, vediamolo nell’esempio qui sotto.
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);
}
}
}
Produzione:
int primitive: 11
int primitive: 22
int primitive: 33
int primitive: 44
int primitive: 55
Possiamo ricontrollare il tipo di dati di numArray eseguendo il debug. L’output di debug seguente mostra che numList è un ArrayList, mentre numArray è un primitivo int.
numList = {ArrayList @832} size = 5 numArray = {int[5] @833} intValue = 11
ArrayUtils.toPrimitive() per convertire l’lista di numeri interi in Int Array in Java
Abbiamo un altro modo per trasmettere un List<Integer> a un tipo int[]. Useremo Apache Common Lang, che è un insieme di metodi di supporto.
ArrayUtils.toPrimitive() ci permette di passare la nostra numList che ci fornisce il risultato nel tipo di dati int[].
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);
}
}
}
Produzione:
int primitive: 110
int primitive: 220
int primitive: 330
int primitive: 440
int primitive: 550
Il metodo di Guava per convertire l’lista di numeri interi in Array Int in Java
Guava è una libreria che può aiutarci a convertire la nostra lista di interi in valori primitivi di int.
Ints.toArray(ListOfIntegers) è una parte del pacchetto com.google.common.primitives.Ints che prende il nostro lista come argomento e ci fornisce l’array di int.
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);
}
}
}
Produzione:
int primitive: 110
int primitive: 220
int primitive: 330
int primitive: 440
int primitive: 550