示例代码demo:
public static void main(String[] args) {
int[] ints = new int[]{1, 2, 3, 4, 5};
List list = Arrays.asList(ints);
System.out.println(list.size());
}
运行结果:
和想象的完全不一样,这是因为asList()方法的参数是泛型变长参数,如下:
而基本类型是不能泛型化的,所以整个数组就都被作为了T的类型,然后经过转换,在List中就只有一个元素,这个元素就是int数组。
需要修改成包装器类型,如下:
public static void main(String[] args) {
Integer[] ints = new Integer[]{1, 2, 3, 4, 5};
List list = Arrays.asList(ints);
System.out.println(list.size());
}
运行结果如下:
总结
建议不要使用基本类型的数组去转集合。