迭代器是一種模式,它可以使得對於序列類型的資料結構的遍曆行為與被遍曆的對象分離,即我們無需關心該序列的底層結構是什麼樣子的。只要拿到這個對象,使用迭代器就可以遍曆這個對象的內部.
1.Iterator
Java提供一個專門的迭代器<<interface>>Iterator,我們可以對某個序列實現該interface,來提供標準的Java迭代器。Iterator介面實現後的功能是“使用”一個迭代器.
文檔定義: [java] view plain copy print ? Package java.util;
publicinterface Iterator<E> {
boolean hasNext();//判斷是否存在下一個對象元素
E next();
void remove(); } [java] view plain copy print ? <span style="font-size:18px;">Package java.util; public interface Iterator<E> { boolean hasNext();//判斷是否存在下一個對象元素 E next(); void remove(); } </span>
2.Iterable
Java中還提供了一個Iterable介面,Iterable介面實現後的功能是“返回”一個迭代器,我們常用的實現了該介面的子介面有: Collection<E>, Deque<E>, List<E>, Queue<E>, Set<E> 等.該介面的iterator()方法返回一個標準的Iterator實現。實現這個介面允許對象成為 Foreach 語句的目標。就可以通過Foreach文法遍曆你的底層序列。
Iterable介面包含一個能夠產生Iterator的iterator()方法,並且Iterable介面被foreach用來在序列中移動。因此如果建立了任何實現Iterable介面的類,都可以將它用於foreach語句中。 [java] view plain copy print ? 文檔定義:
Package java.lang;
import java.util.Iterator; public interface Iterable<T> { Iterator<T> iterator(); } [java] view plain copy print ? <span style="font-size:18px;">文檔定義: Package java.lang; import java.util.Iterator; public interface Iterable<T> { Iterator<T> iterator(); } </span>
[java] view plain copy print