0

我有一个带有 2 个数字的 int 数组。我想将此数字复制到数组列表中并打印出来。尽可能避免使用 Integer result[];

  int result[] = {1024,2048};
  List<Integer> res = new ArrayList<Integer>(result);


public class TEA {

    /**
     * @param args
     */
    public static void main(String[] args) {

          int result[] = {1024,2048};
          List<int[]> res = Arrays.asList(result);
          System.out.println(res);


    }

}

输出:[[I@3312b1dd]

4

2 回答 2

1

如果您不能使用resultanInteger[]而不是 an int[],则您的选择是执行显式for循环:

List<Integer> list = new ArrayList<Integer>();
for (int value : array) {
  list.add(value);
}

...或者,如果您可以使用第三方库,请使用 Guava 的Ints.asList(int[]). 这或多或少是您选择的全部空间。

于 2013-05-10T16:55:02.257 回答
0

使用Arrays.asList()方法来做同样的事情。

List<Integer> res = Arrays.asList(result);

这是数组的列表视图,不能添加或删除元素。

List<Integer> res = new ArrayList<Integer>(Arrays.asList(result));

将源数组中的所有元素复制到一个新列表中。

编辑:

没有从原始类型数组到其包装引用类型数组的自动转换。

int result[] = {1024,2048};
List<Integer> list = new ArrayList<Integer>();
for (int value : result) {
    list.add(value);
}
System.out.println(list);
于 2013-05-10T16:30:22.443 回答