Java: 迭代器

迭代器

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();

猜你喜欢

转载自blog.csdn.net/baidu_25104885/article/details/84955364