(转)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先进先出。(有待看源码解决,不知道是不是真的?

posted @ 2013-09-10 21:55  天子波波  阅读(3516)  评论(1编辑  收藏  举报