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);
}