作者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
1F:推 zeat:为什麽result是final?? 05/12 16:13
2F:推 H45:因为有没有 final 都一样。 05/12 17:52