Подтвердить что ты не робот

Преобразовать Integer [] в массив int []

Есть ли причудливый способ приведения массива Integer в массив int? (Я не хочу перебирать каждый элемент, я ищу элегантный и быстрый способ написать его)

Другим способом я использую

scaleTests.add(Arrays.stream(data).boxed().toArray(Double[]::new));

Я ищу один лайнер, но не смог что-то найти.

Цель состоит в следующем:

int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
4b9b3361

Ответ 1

Вы можете использовать Stream APIs Java 8

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

Ответ 2

Если вы можете использовать Apache commons ArrayUtils, тогда есть простой toPrimitive API:

public static double [] toPrimitive (Double [] array,                                    double valueForNull)

Преобразует массив объектов Doubles в примитивы, обрабатывающие null. Этот метод возвращает null для нулевого входного массива.

Ответ 3

Используя Guava, вы можете сделать следующее:

int[] intArray = Ints.toArray(intList);

Если вы используете Maven, добавьте эту зависимость:

<dependency>
   <groudId>com.google.guava</groupId>
   <artifactId>guava</artifactId>
   <version>18.0</version>
</dependency>