2 回答

TA貢獻2016條經驗 獲得超9個贊
簡單地說:這是java里面的一個迭代器,主要用來取集合容器里面的值
舉個小例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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); } |
他又幾個常用的方法:
(1) 使用方法iterator()要求容器返回一個Iterator。第一次調用Iterator的next()方法時,它返回序列的第一個元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。
(2) 使用next()獲得序列中的下一個元素。
(3) 使用hasNext()檢查序列中是否還有元素。
(4) 使用remove()將迭代器新返回的元素刪除。
Iterator是Java迭代器最簡單的實現,為List設計的ListIterator具有更多的功能,它可以從兩個方向遍歷List,也可以從List中插入和刪除元素。
下面是百度百科的一段內容,我把它復制過來給你參考參考:
Iterator模式有三個重要的作用:
1)它支持以不同的方式遍歷一個聚合 復雜的聚合可用多種方式進行遍歷,如二叉樹的遍歷,可以采用前序、中序或后序遍歷。迭代器模式使得改變遍歷算法變得很容易: 僅需用一個不同的迭代器的實例代替原先的實例即可,你也可以自己定義迭代器的子類以支持新的遍歷,或者可以在遍歷中增加一些邏輯,如有條件的遍歷等。
2)迭代器簡化了聚合的接口 有了迭代器的遍歷接口,聚合本身就不再需要類似的遍歷接口了,這樣就簡化了聚合的接口。
3)在同一個聚合上可以有多個遍歷 每個迭代器保持它自己的遍歷狀態,因此你可以同時進行多個遍歷。
4)此外,Iterator模式可以為遍歷不同的聚合結構(需擁有相同的基類)提供一個統一的接口,即支持多態迭代。
簡 單說來,迭代器模式也是Delegate原則的一個應用,它將對集合進行遍歷的功能封裝成獨立的Iterator,不但簡化了集合的接口,也使得修改、增 加遍歷方式變得簡單。從這一點講,該模式與Bridge模式、Strategy模式有一定的相似性,但Iterator模式所討論的問題與集合密切相關, 造成在Iterator在實現上具有一定的特殊性,具體將在示例部分進行討論。
正如前面所說,與集合密切相關,限制了 Iterator模式的廣泛使用。在一般的底層集合支持類中,我們往往不愿“避輕就重”將集合設計成集合 + Iterator 的形式,而是將遍歷的功能直接交由集合完成,以免犯了“過度設計”的詬病,但是,如果我們的集合類確實需要支持多種遍歷方式(僅此一點仍不一定需要考慮 Iterator模式,直接交由集合完成往往更方便),或者,為了與系統提供或使用的其它機制,如STL算法,保持一致時,Iterator模式才值得考 慮。
- 2 回答
- 0 關注
- 794 瀏覽
添加回答
舉報