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

2022-09-01 01:26:05

有没有一种奇特的方法将整数数组转换为int数组?(我不想迭代每个元素;我正在寻找一种优雅而快速的方法来写它)

相反,我正在使用

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

我正在寻找一个单行,但找不到一些东西。

目标是:

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

答案 1

您可以使用 Java 8 的流 API

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

答案 2

如果您可以考虑使用Apache commons ArrayUtils,那么有一个简单的primitive API:

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

将对象双精度数组转换为处理 null 的基元。

此方法为空输入数组返回 null。