2011-09-23 67 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數組轉換爲整數數組時不起作用。