是否有一种将Integer数组转换为int数组的理想方法?(我不想遍历每个元素;我正在寻找一种优雅且快速的编写方式)
我正在使用的另一种方法
scaleTests.add(Arrays.stream(data).boxed().toArray(Double[]::new));
我正在寻找单线但找不到任何东西。
目标是:
int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
您可以使用Java 8的Stream API
int[] intArray = Arrays.stream(array).mapToInt(Integer::intValue).toArray();
如果您可以考虑使用Apache commons ArrayUtils,那么有一个简单的toPrimitive API:
public static double [] toPrimitive(Double []数组,double valueForNull)
将对象Doubles的数组转换为处理null的基元。对于空输入数组,此方法返回null。
使用番石榴,您可以执行以下操作:
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);