我有一个函数取一个int数组,需要有一个数组放入一个ArrayList如何在java中将int []转换为Integer []?
于是我就用list.addAll(Arrays.asList(array));
但是,由于list
是ArrayList<Integer>
,该addAll
只接受Integer[]
代替int[]
我应该如何将原始数组装入一个整数对象数组?
我有一个函数取一个int数组,需要有一个数组放入一个ArrayList如何在java中将int []转换为Integer []?
于是我就用list.addAll(Arrays.asList(array));
但是,由于list
是ArrayList<Integer>
,该addAll
只接受Integer[]
代替int[]
我应该如何将原始数组装入一个整数对象数组?
您可以使用ArrayUtils从Apache的百科全书:
Integer[] integerArray = ArrayUtils.toObject(intArray);
从此跟着上创建一个List<Integer>
,你可以使用:
List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(intArray));
遍历int数组并实例化新的Integer
对象,并将它们放置在ArrayList
中。您将无法使用自动装箱功能,因为它只适用于基元。数组不是原始类型。
static void addAll(final Collection<Integer> collection, final int[] v) {
for (final int i : v) {
collection.add(i);
}
}
...
addAll(list, array);
如果你有Guava,你可以只用
list.addAll(Ints.asList(array));
......顺便说一下,它比Apache Commons技术创造出更少的不必要的对象。 (具体地讲,它不会打扰创造一个Integer[]
;它只会返回一个List<Integer>
视图的int[]
的。)
披露:我对番石榴贡献。
循环遍历原始列表的元素,建立一个对象,并将其添加到第二个列表中。 –
'列表 .addAll'既不接受Integer []也不接受int []。 –
oldrinb
@veer sry我的意思是asList方法:P – NSF