【问题标题】:Can I convert array of integer to List<int> or List<Integer> by Arrays.asList(array)? [duplicate]我可以通过 Arrays.asList(array) 将整数数组转换为 List<int> 或 List<Integer> 吗? [复制]
【发布时间】: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


【解决方案1】:
  1. 你不能有List&lt;int&gt;

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

你可以有类似的东西

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

【讨论】:

    【解决方案2】:

    你可以这样做

    Integer[] a ={1,2,4};
    
    List<Integer> intList =  Arrays.asList(a);
    
    System.out.println(intList);
    

    【讨论】:

      【解决方案3】:

      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@ 只包含一项:数组。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          编辑:

          从 develman 下面的评论来看,java 6 支持为相同的方法返回 List&lt;&gt; 对象

          旧答案:

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

          【讨论】:

          猜你喜欢
          • 2016-12-26
          • 2022-07-14
          • 1970-01-01
          • 2020-08-24
          • 2020-02-02
          • 2021-07-16
          • 1970-01-01
          • 2015-11-03
          • 2010-10-31
          相关资源
          最近更新 更多