事情起因:
在删除list中元素是报错:java.util.ConcurrentModificationException
删除list集合中的元素一共以下四种方式:
方式一,使用 Iterator ,顺序向下,如果找到元素,则使用 remove 方法进行移除。
方式二,倒序遍历 List ,如果找到元素,则使用 remove 方法进行移除。
方式三,正序遍历 List ,如果找到元素,则使用 remove 方法进行移除,然后进行索引 “自减”。
方式四,使用jdk1.8新增的Stream流操作
1.Iterator 迭代器
@Test
public void fun9(){
List<String> list = new ArrayList<>();
list.add("赵云");
list.add("黄忠");
list.add("马超");
list.add("关羽");
list.add("张飞");
// 获取迭代器
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = it.next();
if("关羽".equals(str)){
it.remove();
}
}
System.out.println(list);
}
2.倒序遍历
@Test
public void fun10(){
List<String> list = new ArrayList<>();