迭代器是一種設計模式,它是一個對象,它可以遍歷並選擇序列中的對象,而開發人員不需要了解該序列的底層結構。
Java中的Iterator功能比較簡單,並且只能單向移動;
(1) 使用方法iterator()要求容器返回一個Iterator。第一次調用Iterator的next()方法時,它返回序列的第一個元素。
注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。
(2) 使用next()獲得序列中的下一個元素。
(3) 使用hasNext()檢查序列中是否還有元素。
(4) 使用remove()將迭代器新返回的元素刪除。
Iterator是Java迭代器最簡單的實現;
首先看看java.util.Iterator接口的定義:
public interface Iterator {
boolean hasNext();
Object next();
void remove();
}
依賴前兩個方法就能完成遍歷,典型的代碼如下:
for(Iterator it = c.iterator(); it.hasNext(); ) {Object o = it.next();
// 對o的操作...
}
在JDK1.5中,還對上面的代碼在語法上作了簡化:
// Type是具體的類型,如String。
for(Type t : c) {
// 對t的操作...
}
迭代器應用:
list l = new ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
迭代器用於while循環
Iterator iter = l.iterator();
while(iter.hasNext()){
String str = (String) iter.next();
System.out.println(str);
}