调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
调用 it.hasNext() 用于检测集合中是否还有元素。
调用 it.remove() 将迭代器返回的元素删除
注意:remove对象是否存在,如果这个对象已被remove,再次remove会出现此异常Java.lang.IllegalStateException异常
People people1 = new People(1, "Ligs", true);
People people2 = new People(2, "Songzx", false);
People people3 = new People(3, "Jinzg", true);
People people4 = new People(4, "Liuzx", false);
People people5 = new People(5, "Hedx", true);
People people6 = new People(6, "Quansm", false);
People people7 = new People(7, "Liangsz", true);
People people8 = new People(8, "Chisz", true);
ArrayList<People> list = new ArrayList<People>() {{
add(people1);
add(people2);
add(people3);
add(people4);
add(people5);
add(people6);
add(people7);
add(people8);
}};
Iterator<People> iterator = list.iterator();
while (iterator.hasNext()) {
People next = iterator.next();
if (next.getId()==3) {
iterator.remove();
}
}
for (People p : list) {
System.out.println(p);
}
输出结果
People{id=1, name='Ligs', sex=true}
People{id=2, name='Songzx', sex=false}
People{id=4, name='Liuzx', sex=false}
People{id=5, name='Hedx', sex=true}
People{id=6, name='Quansm', sex=false}
People{id=7, name='Liangsz', sex=true}
People{id=8, name='Chisz', sex=true}