Ответ 1
Вы можете использовать Stream APIs Java 8
int[] intArray = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
Есть ли причудливый способ приведения массива Integer в массив int? (Я не хочу перебирать каждый элемент, я ищу элегантный и быстрый способ написать его)
Другим способом я использую
scaleTests.add(Arrays.stream(data).boxed().toArray(Double[]::new));
Я ищу один лайнер, но не смог что-то найти.
Цель состоит в следующем:
int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
Вы можете использовать Stream APIs Java 8
int[] intArray = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
Если вы можете использовать Apache commons ArrayUtils, тогда есть простой toPrimitive API:
public static double [] toPrimitive (Double [] array, double valueForNull)
Преобразует массив объектов Doubles в примитивы, обрабатывающие null. Этот метод возвращает null для нулевого входного массива.
Используя Guava, вы можете сделать следующее:
int[] intArray = Ints.toArray(intList);
Если вы используете Maven, добавьте эту зависимость:
<dependency>
<groudId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>