迭代器
Iterator接口包含4个方法:
public interface Iterator<E> {
E next();
boolean hasNext();
void remove();
default void forEachRemaining(Consumer<? super E> action);
}
访问集合元素
调用next方法访问元素前要调用hasNext方法
1
Collection<String> c = ...;
Iterator<String> iter = c.iterator();
while (iter.hasNext()) {
String element = iter.next();
...
}
2 for each循环更加简练,对于实现Iterable接口的对象都可使用,Collection接口扩展了Iterable接口
for (String element : c) {
...
}
迭代器位于两个元素之间。当调用next时,迭代器越过下一个元素,并返回刚刚越过的那个元素的引用。
删除集合元素
remove方法会删除上次调用next方法时返回的元素。每当要删除一个元素时,需要越过这个元素,才能删除它。
//删除两个相邻元素
Iterator<String> it = c.iterator();
it.next();
it.remove();
it.next();
it.remove();