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
Author: Michael, 2015-07-14

4 answers

Vous pouvez utiliser les API Stream de Java 8

int[] intArray = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
 39
Author: Vaibhav, 2015-07-13 22:46:57

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.

 6
Author: Juned Ahsan, 2015-07-13 22:48:32

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>
 2
Author: Janin, 2017-07-14 17:59:59

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);

 0
Author: Antônio Sérgio Ferraz, 2018-10-05 11:46:05