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

如何在Java中将整数[]转换为int[]数组?,java,arrays,java-8,wrapper,Java,Arrays,Java 8,Wrapper,有没有一种奇特的方法可以将整数数组转换为整数数组? (我不想迭代每个元素;我正在寻找一种优雅而快速的编写方法) 我用的是另一种方法 scaleTests.add(Arrays.stream(data.boxed().toArray(Double[]::new)) 我在找一艘客轮,但没找到什么 目标是: int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper int[]valuesPrimitives=Integ

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

我用的是另一种方法

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

我在找一艘客轮,但没找到什么

目标是:

int[] valuesPrimitives = <somehow cast> Integer[] valuesWrapper
int[]valuesPrimitives=Integer[]valuesRapper
< /代码> 如果您可以考虑使用,那么有一个简单的API:

publicstaticdouble[]toPrimitive(double[]array,doublevaluefornull)

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

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


您可以使用Java8的流API

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

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

int[] intArray = Ints.toArray(intList);
如果您使用的是Maven,请添加以下依赖项:

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

番石榴
番石榴
18

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


int[]primitiveArray=ArrayUtils.toPrimitive(objectArray)

您可以下载
org.apache.commons.lang3
jar文件,该文件提供
ArrayUtils
类。
使用以下代码行可以解决此问题:

ArrayUtils.toPrimitive(整数[]非primitive)


其中,
nonPrimitive
是要转换为
int[]
整数[]
,实际问题是:为什么要这样做?伤害已经造成(你已经创建了所有的
Double
对象,并且支付了更高的执行时间和内存使用率)。不,你不能施放它,因为
Double[]
不是
Double[]
。在幕后将有一个迭代。一行程序可以是:
double[]valuespritives=Stream.of(valuesWrapper.mapToDouble(d->d.toArray()@JavaHopper我想你误解我了。我明白为什么人们想要一个简短而优雅的转换解决方案。我不明白人们为什么想要实际的转换。您可以简单地使用
Double[]
而不是
Double[]
。@Turing85适应外国API是常见的情况。您好,谢谢您的回答。不幸的是,我忘了提到我不能使用ArrayUtils。但无论如何,谢谢你有时我更喜欢看
mapToInt(I->I)