作者qrtt1 (null)
看板java
標題Re: [問題] Integer[] 轉成 int[]
時間Tue May 12 09:40:12 2009
※ 引述《naboson (不能說的秘密)》之銘言:
: 如果現在手邊有一個 Integer[] 的陣列
: 想要把它轉為 int[]
: Integer[] origin;
: int[] result = new int[origin.length];
: for(int i=0; i<result.length; i++){
: result[i] = origin[i];
: }
: 上面這個最傳統的方法也還需要線性時間
: 請問還有比線性時間更快的方法嗎?
: ( 其實是想問java還有沒有其他好用的 function 可用~ :p)
: 謝謝
如果你的專案有 Commons Lang 的 ArrayUtils
那有一個 static method:
public static int[] toPrimitive(Integer[] array) {
if (array == null) {
return null;
} else if (array.length == 0) {
return EMPTY_INT_ARRAY;
}
final int[] result = new int[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].intValue();
}
return result;
}
如你所見,也只是跑個 for 迴圈罷了.
REF.
http://svn.apache.org/viewvc/commons/proper/lang/trunk/
src/java/org/apache/commons/lang/ArrayUtils.java?view=markup
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.168.161
推 zeat:為什麼result是final?? 05/12 16:13
推 H45:因為有沒有 final 都一樣。 05/12 17:52