我有一個函數取一個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