2011-09-23 70 views
2

是否有任何直接的方法来将int数组转换为整数数组,并且每个元素都带有循环元素。如何(有效)将int []转换为Integer []?

蛮力方式将

int [] a = {1,2,3}; 
Integer [] b = new Integer[a.length]; 
for(i =0; i<a.length; i++) 
    b[i]= i; 

有没有用出行驶的整个阵列的任何直接的方式?

+0

不,你需要硬着头皮走遍整个阵列。 –

+0

看看这里:http://stackoverflow.com/questions/960431/how-to-convert-listinteger-to-int-in-java你可能会发现一些适合你的方式。 – wlk

回答

8

你已经找到了使用纯Java做“唯一”的方法。我宁愿让整数建设明确,通过

int[] a = {1,2,3}; 
Integer[] b = new Integer[a.length]; 
for (int i = 0; i < a.length; i++) { 
    b[i] = Integer.valueOf(a[i]); 
} 

注意,Apache在Apache中郎,基本上做同样的事情一些实用程序;然而,呼叫看起来更像

Integer[] newArray = ArrayUtils.toObject(oldArray); 

当然,如果你不包括Apache库,你可以写自己的静态功能,使代码看起来很漂亮(如果这是你的关心)。

2

有第三方库,将做肮脏的工作适合你,但他们只是要循环下盖。

E.g.与Guava

int[] primitives = {1,2,3}; 
List<Integer> boxed = Ints.asList(primitives); 
Integer[] boxedArray = Ints.asList(primitives).toArray(new Integer[]); 

,因为你可能不应该使用数组反正而是List他们不给一个方式转换可能。

+0

我错过了什么,这是Java而不是Guava,对不对? –

+1

@Edwin:Guava是一个Java库。 –

+0

对不起,误认为是Java类语言之一,而不是它的库。 –

2

这真的是唯一的方法。当你正在做b [i] = i时,Java会将你的int自动拆箱到Integer。但是,从int数组转换为整数数组时不起作用。