int配列を受け取る関数があり、その配列をarraylistに入れる必要があります
だから私は使用しますlist.addAll(Arrays.asList(array));
ただし、でlistあるためArrayList<Integer>、addAllInteger[]int[]
プリミティブ配列を整数オブジェクト配列にボックス化するにはどうすればよいですか?
ApacheCommonsのArrayUtilsを使用できます。
Integer[] integerArray = ArrayUtils.toObject(intArray);
これに続き、を作成するList<Integer>には、次を使用できます。
List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(intArray));
static void addAll(final Collection<Integer> collection, final int[] v) {
for (final int i : v) {
collection.add(i);
}
}
...
addAll(list, array);
int配列を反復処理して新しいIntegerオブジェクトをインスタンス化し、それらをに配置しますArrayList。オートボクシングはプリミティブに対してのみ機能するため、オートボクシングを使用することはできません。配列はプリミティブ型ではありません。
あなたがグアバを持っているなら、あなたはただ使うことができます
list.addAll(Ints.asList(array));
...ちなみに、ApacheCommonsの手法よりも不要なオブジェクトが少なくなります。(具体的には、わざわざ作成する必要はありません。単にビューをInteger[]返すだけです。)List<Integer>int[]
開示:私はグアバに貢献します。