迭代器(iterator)有時又稱游標,它是一種物件,能夠用來遍歷容器中的元素,每個迭代器物件代表容器中的確定的位址。我一般在遍歷集合的時候使用迭代器,呼叫iterator()方法會返回集合的迭代器,剛獲得迭代器的時候,迭代器的游標指向第乙個元素的前面,通過hasnext()可以判斷游標的後面還有沒有元素,返回乙個布林值,next()返回游標後面的元素,然後游標下移。
注意:迴圈完以後迭代器的游標指向最後乙個元素的後面,所以這個迭代器就無效了,如果還想迭代,需要重新獲得迭代器
// 測試資料
list list = new arraylist()
;list.
add(
"a")
;list.
add(
"b")
;list.
add(
"c")
;list.
add(
"d")
;// 獲得list集合的迭代器
iterator iterator = list.
iterator()
;// hasnext()方法會檢視游標後面還有沒有元素,如果有返回true,否則返回false
while
(iterator.
hasnext()
)
結果:
abc
d
迭代器模式(Iterator)
迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中的各種元素,而又不暴露該物件的內部表示。當你需要訪問乙個聚合物件,而且不管這些物件是什麼都需要遍歷的時候,就應該考慮使用迭代器模式。另外,當需要對聚集有多種方式遍歷時,可以考慮去使用迭代器模式。迭代器模式為遍歷不同的聚集結構提供如開始 ...
迭代器模式(Iterator)
1.目的 當需要遍歷 單種方式或多種方式 遍歷乙個組合物件時,使用遍歷模式。該模式類似與將容器的介面進行封裝,不對外直接暴露容器的介面的做法類似。2.ifndef iterator h define iterator h include include using namespace std cla...
Iterator 迭代器模式
現在有乙個集合。其內部元素的儲存方式可能比較複雜。為了讓使用者在不用關心其內部表示的情況下對其元素進行訪問,於是建立了乙個迭代器用於對集合的各個元素進行訪問。為了給使用者提供乙個更友好且強大的介面類,於是對迭代器以組合的形式進行封裝,得到乙個管理類。使用者直接操作該管理類即可得到指定元素,或通過管理...