java中迭代器的用法

容器中常用到,迭代器就是用來遍歷集合的!使用方法iterator()要求容器返回一個Iterator。使用next()獲得序列中的下一個元素。使用hasNext()檢查序列中是否還有元素。

Iterator接口提供了很多對集合元素進行迭代的方法。每一個集合類都包括了可以返回迭代器實例的迭代方法。迭代器可以在迭代過程中刪除底層集合的元素,但是不可以直接調用集合的remove(Object obj)刪除,可以通過迭代器的remove()方法刪除

迭代和遞歸的區別:


java中迭代器的用法

java中迭代器的用法

java中迭代器的用法

使用for循環先獲得一個迭代器對象,獲得以後然後通過hasNext方法(看看它有沒有下一個)

java中迭代器的用法

java中迭代器的用法

java中迭代器的用法

我們知道ArrayList實現了List接口,而List又繼承了java.util.Collection接口,而Collection又繼承了Iterable接口,而該接口只有一個方法,就是: public abstract Iterator iterator();一個返回迭代器的方法

那麼Iterator和Iterable有什麼區別呢,Iterable中有個iterator()方法可以產生Iterator類型的接口,為什麼要這麼做,而不是讓集合類直接實現iterator接口呢?


因為Iterator接口的核心方法next()或者hasNext() 是依賴於迭代器的當前迭代位置的。 如果Collection直接實現Iterator接口,勢必導致集合對象中包含當前迭代位置的數據(指針)。 當集合在不同方法間被傳遞時,由於當前迭代位置不可預置,那麼next()方法的結果會變成不可預知。 除非再為Iterator接口添加一個reset()方法,用來重置當前迭代位置。但即時這樣,Collection也只能同時存在一個當前迭代位置,而Iterable則不然,每次調用都會返回一個從頭開始計數的迭代器,多個迭代器是互不干擾的。

java中迭代器的用法

如何一次性修改類中出現的同一個名字

快捷鍵shift+alt+r

記住事半功倍

java中迭代器的用法

java中迭代器的用法

也可以先獲得鍵的集合,然後通過鍵的集合來遍歷容器


分享到:


相關文章: