Re: [問題] Integer[] 轉成 int[]

看板java作者 (null)時間16年前 (2009/05/12 09:40), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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

05/12 16:13, , 1F
為什麼result是final??
05/12 16:13, 1F

05/12 17:52, , 2F
因為有沒有 final 都一樣。
05/12 17:52, 2F
文章代碼(AID): #1A2DDzYO (java)
文章代碼(AID): #1A2DDzYO (java)