Java Language Conversion de tableaux entre les primitives et les types en boîte


Exemple

Parfois, la conversion de types primitifs en types encadrés est nécessaire.

Pour convertir le tableau, il est possible d'utiliser des flux (en Java 8 et plus):

Java SE 8
int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray = 
    Arrays.stream(primitiveArray).boxed().toArray(Integer[]::new);

Avec des versions inférieures, cela peut être en itérant le tableau primitif et en le copiant explicitement dans le tableau encadré:

Java SE 8
int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray = new Integer[primitiveArray.length];
for (int i = 0; i < primitiveArray.length; ++i) {
    boxedArray[i] = primitiveArray[i]; // Each element is autoboxed here
}

De même, un tableau en boîte peut être converti en un tableau de son homologue primitif:

Java SE 8
Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray = 
    Arrays.stream(boxedArray).mapToInt(Integer::intValue).toArray();
Java SE 8
Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray = new int[boxedArray.length];
for (int i = 0; i < boxedArray.length; ++i) {
    primitiveArray[i] = boxedArray[i]; // Each element is outboxed here
}