Java集合的list的addAll异常

一般情况下,我们将集合A中的内容全部添加到集合B,是这样的:

        List list1 = new ArrayList<>();
        List list2 = new ArrayList<>();
        list1.add("1");
        list2.add("2");
        list1.addAll(list2);

当然,这样做之后,运行程序也是完全没有问题的,但是当我们用这种骚操作时:

        List list1 = Arrays.asList("1","2","3");
        List list2 = Arrays.asList("4","5","6");
        list1.addAll(list2);

就会报出如下错误

这种由数组转换而来的集合,是我们很多人喜欢贪方便而常有的操作,那么我们来去看看asList的源码,看看错误在哪

Java集合的list的addAll异常_第1张图片

从源码的注释中可以看到,调用asList方法返回的是一个固定大小的集合,所以再往里添加元素必然会报错,那么什么才是正确的操作呢

Java集合的list的addAll异常_第2张图片

你可能感兴趣的:(Java)