如何将 Integer[] 转换为 Java 中的 int[] 数组?

How to convert Integer[] to int[] array in Java?

有没有一种奇特的方法可以将 Integer 数组转换为 int 数组? (我不想遍历每个元素;我正在寻找一种优雅快捷的方式来编写它)

相反,我正在使用

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

我正在寻找单班机,但没找到。

目标是:

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

如果可以考虑用Apache commons ArrayUtils then there is a simple toPrimitive API:

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

Converts an array of object Doubles to primitives handling null.

This method returns null for a null input array.

您可以使用 Java 8

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

使用 Guava,您可以执行以下操作:

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

如果您使用的是 Maven,请添加此依赖项:

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

如果您可以访问 Apache lang 库,那么您可以像这样使用 ArrayUtils.toPrimitive(Integer[]) 方法:

int[] primitiveArray = ArrayUtils.toPrimitive(objectArray);

您可以下载 org.apache.commons.lang3 jar 文件,其中提供 ArrayUtils class.
使用下面的代码行将解决问题:

ArrayUtils.toPrimitive(Integer[] nonPrimitive)

其中nonPrimitive是要转换成int[]Integer[]