Java数组转ArrayList的注意事项详解编程语言

今天做一道题目时,遇到了一个问题——将一个int[]数组转化成List<Integer>类型,好像是一个挺常见的场景。于是立刻写下:

ArrayList<Integer> list = new ArrayList<>(Arrays.asList(array)); 

结果就报错了:

Line 22: error: incompatible types: Integer[] cannot be converted to int[] 
            int[] temp = new Integer[size]; 
                         ^ 
Line 35: error: incompatible types: inference variable T has incompatible bounds 
            List<Integer> list = Arrays.asList(temp); 
                                              ^ 
    equality constraints: Integer 
    lower bounds: int[] 
  where T is a type-variable: 
    T extends Object declared in method <T>asList(T...) 
2 errors 

为什么报格式不匹配呢?

因为Arrays.asList()是泛型方法,传入的对象必须是对象数组。如果传入的是基本类型的数组,那么此时得到的list只有一个元素,那就是这个数组对象int[]本身。

解决方法

将基本类型数组转换成包装类数组,这里将int[]换成Integer[]即可。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/19350.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论