看两段代码
int[] myArray = {1, 2, 3}; List myList = Arrays.asList(myArray);
Integer[] myArray = {1, 2, 3}; List myList = Arrays.asList(myArray);
这两段代码差别很大,第一个代码生成的myList中只有一个元素,就是数组本身
第二段代码是三个元素。
所以,使用Arrays.asList必须注意,数组必须是包装类型的。
而且,Arrays.asList返回的list并不是常见的java.util.下的那个list,而是Arrays的静态内部类
有没有更好的版本把数组转成list呢
Integer [] myArray = { 1, 2, 3 }; List myList = Arrays.stream(myArray).collect(Collectors.toList()); //基本类型也可以实现转换(依赖boxed的装箱操作) int [] myArray2 = { 1, 2, 3 }; List myList = Arrays.stream(myArray2).boxed().collect(Collectors.toList());