如何将 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[]
。
有没有一种奇特的方法可以将 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 APIint[] 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[]
。