我可以通过Arrays.asList(array)将整数数组转换为List <int>或List <integer>吗?</integer> </int>

时间:2011-01-25 10:13:02

标签: java collections

  

可能重复:
  Arrays.asList() not working as it should?
  How to convert int[] into List<Integer> in Java?

或者我必须将int []重构为Integer []?

5 个答案:

答案 0 :(得分:2)

  1. 您不能拥有List<int>

  2. Arrays.asList(array);将返回类型为T(传递数组)的List

  3. 您可以拥有类似

    的内容
      Integer[] a = new Integer[]{1,2,3};
      List<Integer> lst = Arrays.asList(a);
    

答案 1 :(得分:2)

你可以这样做

Integer[] a ={1,2,4};

List<Integer> intList =  Arrays.asList(a);

System.out.println(intList);

答案 2 :(得分:1)

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,因为它会只需返回一个只包含一个项目的List:数组。

答案 3 :(得分:0)

编辑:

从develman下面的评论中,java 6支持为同一方法返回List<>个对象

老答案:

Arrays.asList(array)会返回java.util.List个对象。

答案 4 :(得分:0)

如果你有一个整数数组,那么你可以使用Arrays.asList()来获得一个整数列表:

Integer[] inters = new Integer[5];
List<Integer> ints = Arrays.asList(inters);