将Integer []转换为int []数组

Mic*_*ael 33 java arrays wrapper java-8

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

我正在使用另一种方式

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

我正在寻找单线但无法找到的东西.

目标是:

int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
Run Code Online (Sandbox Code Playgroud)

小智 51

您可以使用Java 8的Stream API

int[] intArray = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
Run Code Online (Sandbox Code Playgroud)

  • 有时我更喜欢看`mapToInt(i - > i)`. (5认同)

Jun*_*san 6

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

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

将对象双精度数组转换为处理null的基元.此方法为空输入数组返回null.