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

问题描述 投票:34回答:4

是否有一种将Integer数组转换为int数组的理想方法?(我不想遍历每个元素;我正在寻找一种优雅且快速的编写方式)

我正在使用的另一种方法

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

我正在寻找单线但找不到任何东西。

目标是:

int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
java arrays java-8 wrapper
4个回答
52
投票

您可以使用Java 8的Stream API

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

6
投票

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

public static double [] toPrimitive(Double []数组,double valueForNull)

将对象Doubles的数组转换为处理null的基元。对于空输入数组,此方法返回null。


2
投票

使用番石榴,您可以执行以下操作:

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

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

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

0
投票

如果您有权访问Apache lang库,则可以使用ArrayUtils.toPrimitive(Integer [])方法,如下所示:

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

© www.soinside.com 2019 - 2024. All rights reserved.