我有一个带有int数组的函数,需要将该数组放入arraylist
所以我使用list.addAll(Arrays.asList(array));
但由于list
为ArrayList<Integer>
,addAll
仅接受Integer[]
而不是int[]
我应该如何将原始数组装入整数对象数组?
答案 0 :(得分:3)
您可以使用Apache Commons的ArrayUtils:
Integer[] integerArray = ArrayUtils.toObject(intArray);
从此开始,要创建List<Integer>
,您可以使用:
List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(intArray));
答案 1 :(得分:2)
static void addAll(final Collection<Integer> collection, final int[] v) {
for (final int i : v) {
collection.add(i);
}
}
...
addAll(list, array);
答案 2 :(得分:1)
遍历int数组并实例化新的Integer
个对象,并将它们放在ArrayList
中。您将无法使用自动装箱,因为它仅适用于基元。数组不是原始类型。
答案 3 :(得分:0)
如果您有Guava,则可以使用
list.addAll(Ints.asList(array));
...顺便说一句,它产生的不必要的对象少于Apache Commons技术。 (具体来说,它不会打扰创建Integer[]
;它只会返回List<Integer>
的{{1}}视图。)
披露:我为Guava做出贡献。