package com.itheima;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
*
* 4、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,
* 删除其中所有值为"abc"的字符串元素,请用代码实现。
*
*/
public class Test4 {
public static void main(String[] args) {
List<String> aList=new ArrayList<String>();
//向aList集合中添加元素
aList.add("fetadf");
aList.add("abc");
aList.add("feffads");
aList.add("jiasfja");
aList.add("abc");
System.out.println("删除前的aList集合中的元素"+aList);
//创建迭代器,迭代aList集合中元素 如果元素值为"abc" 就删除该元素
Iterator<String> it=aList.listIterator();
while(it.hasNext()){
String value=it.next();
if(value.equals("abc"))
it.remove();
}
System.out.println("删除后aList集合中的元素"+aList);
}
}
在迭代集合的过程中,不能对集合进行增删操作(会报并发访问异常);可以用迭代器的方法进行操作(子类listIterator:有增删的方法)
为什么用 Iterator迭代器 进行删除不报错呢?
|