web-dev-qa-db-fra.com

Convertir Integer [] en tableau int []

Existe-t-il un moyen élégant de convertir un tableau Integer en tableau int? (Je ne veux pas parcourir 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-line mais je n'ai pas pu trouver quelque chose.

Le but est de:

int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
27
Michael

Vous pouvez utiliser les API de flux de Java 8

int[] intArray = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
44
Vaibhav

Si vous pouvez envisager d’utiliser Apache commons ArrayUtils , alors il existe un simple toPrimitive API:

public statique double [] toPrimitive (Tableau Double [], double valueForNull)

Convertit un tableau d'objets Doubles en primitives gérant null . Cette méthode retourne null pour un tableau d'entrée nul.

6
Juned Ahsan

En utilisant Guava, 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
Janin