是否有任何直接的方法将int数组转换为Integer数组,并逐个元素地循环。
蛮力方式
int [] a = {1,2,3};
Integer [] b = new Integer[a.length];
for(i =0; i<a.length; i++)
b[i]= i;
有没有直接的方法来旅行整个阵列?
答案 0 :(得分:8)
您已经找到了使用纯Java的“唯一”方法。我更喜欢通过
使Integer结构显式化int[] a = {1,2,3};
Integer[] b = new Integer[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = Integer.valueOf(a[i]);
}
请注意,Apache在Apache Lang中有一些实用程序,基本上做同样的事情;但是,通话看起来更像是
Integer[] newArray = ArrayUtils.toObject(oldArray);
当然,如果你不包含Apache库,你可以编写自己的静态函数来使代码看起来很漂亮(如果你担心的话)。
答案 1 :(得分:5)
有JDK内置,但如果你有apache commons,你可以使用
答案 2 :(得分:2)
有些第三方图书馆会为你做肮脏的工作,但它们只是在幕后循环。
E.g。与Guava:
int[] primitives = {1,2,3};
List<Integer> boxed = Ints.asList(primitives);
Integer[] boxedArray = Ints.asList(primitives).toArray(new Integer[]);
他们不提供单方法转换,大概是因为你可能不应该使用数组而是List
。
答案 3 :(得分:2)
这真的是唯一的方法。当你在做b [i] = i时,Java会自动将你的int拆箱到整数。但是,当从int数组转换为Integer数组时,这不起作用。