Convertir Integer[] en tableau int []
Existe-t-il un moyen sophistiqué de convertir un tableau entier en un tableau int? (Je ne veux pas itérer sur chaque élément; je cherche un moyen élégant et rapide de l'écrire)
Dans l'autre sens, j'utilise
scaleTests.add(Arrays.stream(data).boxed().toArray(Double[]::new));
Je cherche un one-liner mais je n'ai pas pu trouver quelque chose.
L'objectif est de:
int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
4 answers
Vous pouvez utiliser les API Stream de Java 8
int[] intArray = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
Si vous pouvez envisager d'utiliser Apache commons ArrayUtils alors il y a un simpletoPrimitive API:
Public statique double [] toPrimitive (Double [] tableau, double valueForNull)
Convertit un tableau de Doubles d'objets en primitives gérant null. Cette méthode renvoie null pour un tableau d'entrée null.
En utilisant la goyave, vous pouvez effectuer les opérations suivantes:
int[] intArray = Ints.toArray(intList);
Si vous utilisez Maven, ajoutez cette dépendance:
<dependency>
<groudId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
Si vous avez accès à la bibliothèque Apache lang, vous pouvez utiliser ArrayUtils.Méthode toPrimitive (Integer[]) comme ceci:
int[] newArray = ArrayUtils.toPrimitive(oldArray);