基本类型数组转换成列表的坑

示例代码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());
}

运行结果如下:在这里插入图片描述

总结

建议不要使用基本类型的数组去转集合。

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/108352610