0

int配列を受け取る関数があり、その配列をarraylistに入れる必要があります

だから私は使用しますlist.addAll(Arrays.asList(array));

ただし、でlistあるためArrayList<Integer>addAllInteger[]int[]

プリミティブ配列を整数オブジェクト配列にボックス化するにはどうすればよいですか?

4

4 に答える 4

3

ApacheCommonsのArrayUtilsを使用できます。

Integer[] integerArray = ArrayUtils.toObject(intArray);

これに続き、を作成するList<Integer>には、次を使用できます。

List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(intArray));
于 2012-08-26T00:47:02.153 に答える
2
static void addAll(final Collection<Integer> collection, final int[] v) {
  for (final int i : v) {
    collection.add(i);
  }
}
...
addAll(list, array);
于 2012-08-26T00:46:29.000 に答える
1

int配列を反復処理して新しいIntegerオブジェクトをインスタンス化し、それらをに配置しますArrayList。オートボクシングはプリミティブに対してのみ機能するため、オートボクシングを使用することはできません。配列はプリミティブ型ではありません。

于 2012-08-26T00:40:24.080 に答える
0

あなたがグアバを持っているなら、あなたはただ使うことができます

list.addAll(Ints.asList(array));

...ちなみに、ApacheCommonsの手法よりも不要なオブジェクトが少なくなります。(具体的には、わざわざ作成する必要はありません。単にビューをInteger[]返すだけです。)List<Integer>int[]

開示:私はグアバに貢献します。

于 2012-08-26T02:40:59.420 に答える