关闭

Iterator与Enumeration

标签: iterator-迭代器enumeratiojava容器枚举遍历
1011人阅读 评论(0) 收藏 举报
分类:

Enumeration的存在有什么意义?

Iterator已经实现了对容器的遍历了,Enumeration的存在有什么意义呢?

原因可能有很多种,个人了解有限,欢迎大家补充。

  1. Enumeration在JDK 1.0就已经存在了,而Iterator是JDK 2.0新加的接口。为了依赖JDK1.0写的代码能够正常运行,Enumeration是不能删的。

相同点

  • Iterator和Enumeration都可以对某些容器进行遍历。
  • Iterator和Enumeration都是接口。

欢迎大家补充。

不同点

  • Iterator有对容器进行修改的方法。而Enumeration只能遍历。
  • Iterator支持fail-fast,而Enumeration不支持。
  • Iterator比Enumeration覆盖范围广,基本所有容器中都有Iterator迭代器,而只有Vector、Hashtable有Enumeration。
  • Enumeration在JDK 1.0就已经存在了,而Iterator是JDK2.0新加的接口。

Enumeration例子

import java.util.Enumeration;
import java.util.Vector;

public class ItrOfVectorTest {

        @org.junit.Test
        public void test() {
            Vector list = new Vector<>();
            list.add("1");
            list.add("2");
            list.add("3");
            list.add("4");
            Enumeration enu = list.elements();  
            while (enu.hasMoreElements()) {  
                System.out.println(enu.nextElement());
            }
        }
}

Enumeration方法

  • elements()。vector.elements()用来从容器对象中返回vector中所有元素的Enumeration。
  • hasMoreElements()。检查序列中向下是否还有元素。
  • nextElement()。获取序列的下个元素。

Enumeration在Vector中的实现

/**
 * 返回vector中所有元素的Enumeration。
 * 
 * Enumeration提供用于遍历vector中所有元素的方法
 * 
 * @return  返回vector中所有元素的Enumeration。
 * @see     Iterator
 */
public Enumeration<E> elements() {
    return new Enumeration<E>() {
        int count = 0;

        public boolean hasMoreElements() {
            return count < elementCount;
        }

        public E nextElement() {
            synchronized (Vector.this) {
                if (count < elementCount) {
                    return elementData(count++);
                }
            }
            throw new NoSuchElementException("Vector Enumeration");
        }
    };
}
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Iterator迭代器-ListIterator-Enumeration枚举类接口的特点和区别

Iterator迭代器-ListIterator-Enumeration枚举类接口的特点和区别 1、Iterator的特点:     API中是这样解释的: 对collection进行迭代的迭代器。它...
  • u014344668
  • u014344668
  • 2015-04-25 11:22
  • 1425

枚举类Enumeration的使用以及与iterator的区别

ps:iterator和枚举类的区别 1.iterator多了一个删除元素的api 2.其次在定义名称上貌似改进了些 下面是转载的枚举类使用: Enumeration  En...
  • techbirds_bao
  • techbirds_bao
  • 2013-01-22 13:45
  • 6589

request中的方法小结

一.request常用方法 getRequestURL方法返回客户端发出请求时的完整URL。 getRequestURI方法返回请求行中的资源名部分。 getQueryString方法返回请求行的参数...
  • gaoweizang
  • gaoweizang
  • 2016-06-28 15:50
  • 2230

java提高篇(三十)-----Iterator,与enumeration的区别。

java提高篇(三十)-----Iterator 目录(?)[+]         迭代对于我们搞Java的来说绝对不陌生。我们常常使用JDK提供的迭代...
  • a724888
  • a724888
  • 2017-03-12 16:32
  • 105

Enumeration和Iterator

枚举(Enumeration)接口是从以前版本遗留下来。在下面依次介绍Enumeration 和每一种从以前版本遗留下来的类。 Enumeration接口 Enumeration接口定义了可以对...
  • ithouse
  • ithouse
  • 2014-07-23 16:53
  • 344

Enumeration 与 Iterator 学习笔记

在学习集合时,对Enumeration接口的理解不够,网上查资料后,摘录以下内容,以便加深对Enumeration的理解与认知。  枚举(Enumeration)接口是从以前版本遗留下来。在下面依次...
  • SwINg_xiao5
  • SwINg_xiao5
  • 2011-10-03 18:09
  • 590

java问题探讨之Iterator和Enumeration

转载:http://www.cnblogs.com/skywang12345/p/3311275.htmlIterator和Enumeration区别在Java集合中,我们通常都通过 “Iterato...
  • vegetable_bird_001
  • vegetable_bird_001
  • 2016-04-30 20:32
  • 327

Enumeration 与 Iterator

1 java.util.Enumeration 有两个方法hasMoreElements(),nextElement()。使用方法如下: //打印向量v的所有元素 for(Enumeratin e =...
  • feiyu8607
  • feiyu8607
  • 2011-06-25 14:27
  • 951

java类集(List/Set/Map/Iterator)(Enumeration/Vector/Stack/Properties)

java实现类集的包: java.util.*包 类集:动态对象数组(可以保存多个对象在一个数组之中)或链表           问题:数组长度不可改变,当需要向数组中增加数据的时候需要去考虑对象...
  • xiaonian8
  • xiaonian8
  • 2013-12-18 15:06
  • 343

Iterator、ListIterator、foreach、Enumeration

- Iterator - ListIterator - Enumeration - foreach
  • u012369153
  • u012369153
  • 2016-10-31 15:17
  • 187
    个人资料
    • 访问:78575次
    • 积分:2149
    • 等级:
    • 排名:千里之外
    • 原创:133篇
    • 转载:3篇
    • 译文:1篇
    • 评论:4条
    博客专栏
    最新评论