数组转list的坑

看两段代码

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()); 

 

上一篇:2021-8


下一篇:Java Arrays.asList 和 new ArrayList(Arrays.asList()) 的对比