【发布时间】:2011-06-15 02:24:08
【问题描述】:
可能的重复:
Arrays.asList() not working as it should?
How to convert int[] into List<Integer> in Java?
或者我必须将 int[] 重构为 Integer[] 吗?
【问题讨论】:
-
是的。或者不要使用 Arrays.asList()
标签: java collections
可能的重复:
Arrays.asList() not working as it should?
How to convert int[] into List<Integer> in Java?
或者我必须将 int[] 重构为 Integer[] 吗?
【问题讨论】:
标签: java collections
你不能有List<int>
Arrays.asList(array); 将返回类型为 T 的列表(已传递的数组)
你可以有类似的东西
Integer[] a = new Integer[]{1,2,3};
List<Integer> lst = Arrays.asList(a);
【讨论】:
你可以这样做
Integer[] a ={1,2,4};
List<Integer> intList = Arrays.asList(a);
System.out.println(intList);
【讨论】:
Arrays.asList(array) 返回数组的 List-type 视图。因此,您可以使用List 接口来访问包装的 java 原语数组的值。
现在如果我们传递一个 java 对象数组和一个 java 原始值数组会发生什么?该方法采用可变数量的 java 对象。 java 原语不是一个对象。 Java 可以使用自动装箱来创建包装器实例,但是在这种情况下,它将数组本身作为一个 java 对象。所以我们最终是这样的:
List<Integer> list1 = Arrays.asList(new Integer[]{1,2,3}));
List<int[]> list2 = Arrays.asList(new int[]{1,2,3}));
第一个集合保存整数值,第二个集合保存int[] 数组。这里没有自动装箱。
所以如果你想将一个java原语数组转换为List,你不能使用Arrays.asList,因为它只会返回一个@ 987654327@ 只包含一项:数组。
【讨论】:
如果你有一个整数数组,那么你可以使用 Arrays.asList() 来获取一个整数列表:
Integer[] inters = new Integer[5];
List<Integer> ints = Arrays.asList(inters);
【讨论】:
编辑:
从 develman 下面的评论来看,java 6 支持为相同的方法返回 List<> 对象
旧答案:
Arrays.asList(array) 返回一个java.util.List 对象。
【讨论】: