Iterator對象稱為疊代器(設計模式的一種),主要用于周遊 Collection 集合中的元素。Collection接口繼承了java.lang.Iterable接口,該接口有一個iterator()方法,那麼所有實作了Collection接口的集合類都有一個iterator()方法,用以傳回一個實作了Iterator接口的對象。
Iterator 僅用于周遊集合,Iterator 本身并不提供承裝對象的能力。如果需要建立
Iterator 對象,則必須有一個被疊代的集合。
集合對象每次調用iterator()方法都得到一個全新的疊代器對象,預設遊标都在集合
的第一個元素之前。
在調用it.next()方法之前必須要調用it.hasNext()進行檢測。若不調用,且下一條記錄無效,直接調用it.next()會抛出NoSuchElementException異常。
是以,通常集合周遊的方法如下:
Iterator iter = coll.iterator(); //每當collection.iterator()都生成傳回一個新的疊代器對象,即遊标在最開頭
while(iter.hasNext()){
Object obj = iter.next();
if(obj.equals(要去除的元素)){
iter.remove();
}
}
Iterator可以删除集合的元素,但是是周遊過程中通過疊代器對象的remove方法,不是集合對象的remove方法。
Java 5.0 提供了 foreach 循環疊代通路 Collection和數組
周遊操作不需擷取Collection或數組的長度,無需使用索引通路元素
周遊集合的底層調用Iterator完成操作
//又建立了一個集合,而不是原來的集合,裡面的具體操作操作的是新的集合
for(集合内元素類型 局部變量名 : 要進行周遊操作的集合){
//具體操作
}
//又建立了一個數組,而不是原來的集合,裡面的具體操作操作的是新的數組
for(數組内元素類型 局部變量名 : 要進行周遊操作的數組){
//具體操作
}