巧妙施用Iterator 解决集合在循环中删除元素

巧妙使用Iterator 解决集合在循环中删除元素
在程序开发中经常会使用到泛型,在循环中非常好用,但也有一定的弊端,如以下代码:
List<string> list = new ArrayList<string>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
for(String s : list){
.....
                        }
在以上代码中使用会非常简单,如果在循环中使用list.remove(s);则编译器会报:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at com.taobao.test.ListTest.main(ListTest.java:18)
在集合使用中是不允许直接删除其中的数据,可以巧妙的使用Iterator解决这个问题。
Iterator it =list.iterator();
while(it.hasNext()){
if("aaa".equals(it.next())){
it.remove();
}

}</string></string>