Java: 迭代器
阿新 • • 發佈:2018-12-28
迭代器
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();