1.使用 CopyOnWriteArrayList ,直接for循环中就可以直接进行增删改操作
2.如果使用了ArrayList 或者 Set ,那就可以使用迭代器 Iterator 或者 ListIterator 进行相关操作
Iterator 和 ListIterator 的区别:
-
Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。
-
Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。
-
ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。
//使用iterator删除元素
public void aaa() {
List<String> list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
if(iterator.next().equals("2")){
iterator.remove();
}
}
System.out.println(list);
}
输出结果为:[1,3]
//使用ListIterator操作
public void aaa() {
List<String> list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
ListIterator<String> stringListIterator = list.listIterator();
while(stringListIterator.hasNext()){
//添加数据
if(stringListIterator.next().equals("1")){
stringListIterator.add("AAA");
}
//替换数据
if(stringListIterator.next().equals("2")){
stringListIterator.set("BBB");
}
//删除数据
if(stringListIterator.next().equals("3")){
stringListIterator.remove();
}
}
System.out.println(list);
}
输出结果:[1, AAA, BBB]