package exercise;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class test {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) {
List list = new ArrayList();
list.add("key1");
list.add("key2");
list.add("key3");
list.add("key4");
list.add("key5");
Iterator it = list.iterator();
/* 此处必须先调用it.next() 然后在 it.remove()。
*如果it.remove() 在 it.next() 或者直接it.remove()则会抛出 java.lang.IllegalStateException
*如果在next和remove中间,集合出现了结构性变化(删除或者是增加)则会出现异常IllegalStateException。
**/
while(it.hasNext()) {
String value = (String) it.next();
if(value.equals("key3")) {
it.remove();
}
}
System.out.println("迭代结果:"+list.toString());
for(int i = list.size()-1;i >= 0;i--) {
String value = (String) list.get(i);
if(value.equals("key3")) {
list.remove(value);
}
}
System.out.println("倒叙循环结果:"+list.toString());
for(int i=0;i<list.size();i++) {
String value = (String) list.get(i);
if(value.equals("key3")) {
list.remove(value);
i--;
}
}
System.out.println("倒叙循环结果:"+list.toString());
}
}