为什么使用Arrays.asList转换返回的list不能直接新增

Arrays类中asList方法是将传入的数据转入Arraylist

    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

但是这个ArrayList并不是java.util.ArrayList,而是Arrays类中的一个内部类

 ArrayList(E[] array) {
            a = Objects.requireNonNull(array);
        }

他并没有如ArrayList一样继承AbstractList,所以并不能使用add和remove

 

 解决办法 new一个新的list出来

        List<String> strings = new ArrayList<>(Arrays.asList(arr));

同时注意新增和删除需要用迭代器来进行。

posted @ 2022-11-15 11:34  蹉~跎  阅读(89)  评论(0)    收藏  举报