作者adrianshum (Alien)
看板java
标题Re: [问题] Integer[] 转成 int[]
时间Mon May 11 17:29:44 2009
※ 引述《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
1F:推 AI3767:我猜大概是因为需要int可以做bit运算吧... 05/12 01:20
2F:→ adrianshum:Integer 也可以吧, compiler 会自动做 unboxing 05/12 11:17
3F:推 AI3767:嗯嗯,方便性上是蛮好的.只是boxing/unboxing有overhead 05/12 12:25
4F:→ adrianshum:我觉得不必瞎猜, 原po也没说过为什麽要转int[] 05/12 15:47