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

看板java作者 (Alien)時間16年前 (2009/05/11 17:29), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《naboson (不能說的秘密)》之銘言: : 標題: [問題] Integer[] 轉成 int[] : 時間: Mon May 11 16:35:32 2009 : : : 如果現在手邊有一個 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) : : 謝謝 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 140.112.107.147 : 推 TonyQ:在現在都有auto-boxing 的狀況下 , 有特地需要對wrapper轉回 05/11 16:54 : → TonyQ:原型嗎o.oa 我是覺得應該是沒有不到o(n)的作法. 05/11 16:56 : 推 adrianshum:推樓上: 既然可 result[i]=origin[i] 就代表你是JDK1.5 05/11 17:25 推文太久... 回吧 既然可 result[i]=origin[i] 就代表你在用 JDK 1.5+, 已有 autoboxing/unboxing 那麼何必另外弄一個 int[]? 另, array copy 可用 System.arraycopy. 直接做 memory copy, 速度快很多. 但當然, 只限 同類 array (你這類應該沒輒) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

05/12 01:20, , 1F
我猜大概是因為需要int可以做bit運算吧...
05/12 01:20, 1F

05/12 11:17, , 2F
Integer 也可以吧, compiler 會自動做 unboxing
05/12 11:17, 2F

05/12 12:25, , 3F
嗯嗯,方便性上是蠻好的.只是boxing/unboxing有overhead
05/12 12:25, 3F

05/12 15:47, , 4F
我覺得不必瞎猜, 原po也沒說過為什麼要轉int[]
05/12 15:47, 4F
文章代碼(AID): #1A1_09Y- (java)
文章代碼(AID): #1A1_09Y- (java)