List常见异常

134 阅读1分钟

1.List的初始化方式1 通过add添加元素,list通过for循环会发生java.util.ConcurrentModificationException异常,可以使用迭代器遍历后操作

private static void test01() {
    List<String> list01 = new ArrayList<>();
    list01.add("a");
    list01.add("b");
    list01.add("c");
    for (String s : list01) {
        list01.remove(s);//for循环遍历报错java.util.ConcurrentModificationException
    }
    //需要用迭代器遍历操作
    Iterator<String> iterator = list01.iterator();
    while (iterator.hasNext()) {
        String next = iterator.next();
        if (next.equals("b")) {
            list01.remove(next);
        }
    }
    System.out.println(list01);
}

2.List的初始化方式2 通过数组转化为list赋值,因为底层还是数组所以无法进行增删操作,可以再用list包装后再进行操作

private static void test02() {
    List<String> list02 = Arrays.asList("a", "b", "c");
    list02.add("d");
    list02.remove("b");
    //底层是数组,add,remove会报UnsupportedOperationException异常

    //可以用arrayList在包装一次后操作
    List<String> list03 = new ArrayList<>(list02);
    list03.add("d");
    list03.remove("a");
    System.out.println(list03);
}