(轉)Enumeration和Iterator的區別


Iterator對集合進行迭代的迭代器。迭代器代替了 Java Collections Framework 中的 Enumeration。迭代器與枚舉有兩點不同:

  • 迭代器允許調用方利用定義良好的語義在迭代期間從迭代器所指向的集合移除元素。
  • 方法名稱得到了改進。 
    簡化對集合的操作,主要功能是遍歷並選擇集合中的對象,其中有三個最要的方法:
           1.hasNext() 返回布爾值 看集合中還有沒有元素
           2.next() 返回下一個元素 返回的是O的所一定要強轉一下
           3.remove() 元素刪除
    接口 Iterator:
            構建一個Iterator迭代器 -->Iterator iterator=所要進行迭代的集合對象.iterator();

    接口 Enumeration: 注意=====Enumeration已經不是主流,Iterator是它的下一代替代品
            構建一個Enumeration迭代器-->Enumeration enumeration=所要進行迭代的集合對象.elements()

Iterator:

方法摘要 boolean () 
            如果仍有元素可以迭代,則返回 true() 
            返回迭代的下一個元素。void() 
            從迭代器指向的集合中移除迭代器返回的最后一個元素(可選操作)。

Enumeration: 方法摘要boolean() 
            測試此枚舉是否包含更多的元素。() 
            如果此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素。

主要區別:

            java中的集合類都提供了返回Iterator的方法,就是迭代器,它和Enumeration的主要區別其實就是Iterator可以刪除元素,但是Enumration卻不能。

            還有一點要注意的就是,使用Iterator來遍歷集合時,應使用Iterator的remove()方法來刪除集合中的元素,使用集合的remove()方法將拋出ConncurrentModificationException異常。

            Enumeration 與 iterator 都是迭代輸出的方法,Enumeration先進后出,iterator先進先出。(有待看源碼解決,不知道是不是真的?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM