Enumeration和Iterator的区别

来源:互联网 发布:网络歌手受排挤 编辑:程序博客网 时间:2024/05/02 02:35

Enumeration和Iterator的区别

枚举(Enumeration)接口是从以前版本遗留下来。在下面依次介绍Enumeration
和每一种从以前版本遗留下来的类。
15.10.1   Enumeration接口
Enumeration接口定义了可以对一个对象的类集中的元素进行枚举(一次获得一个)的
方法。这个接口尽管没有被摈弃,但已经被Iterator(迭代器)所替代。Enumeration对新程序来说是过
时的。然而它仍被几种从以前版本遗留下来的类(例如Vector和Properties)所定义的方法
使用,被几种其他的API类所使用以及被目前广泛使用的应用程序所使用。
Enumeration指定下面的两个方法:
boolean   hasMoreElements(   )
Object   nextElement(   )
执行后,当仍有更多的元素可提取时,hasMoreElements(  )方法一定返回true。当所有
元素都被枚举了,则返回false。nextElement(   )方法将枚举中的下一个对象做为一个类属
Object的引用而返回。也就是每次调用nextElement(  )方法获得枚举中的下一个对象。调用例
程必须将那个对象置为包含在枚举内的对象类型。

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.Hashtable;

import java.util.Iterator;

 

publicclass Testliterator {

 @SuppressWarnings("unchecked")

 privatestatic ArrayListlist=new ArrayList();

 @SuppressWarnings("unchecked")

privatestatic Hashtablehashtable=new Hashtable();

@SuppressWarnings("unchecked")

publicstaticvoid main(String args[]){

    for(int i=0;i<10;i++){

       list.add(i);

}

    for(int i=0;i<10;i++){

       hashtable.put(i,i);

}

    @SuppressWarnings("unused")

    Iterator it=list.iterator();

    while(it.hasNext()){

    System.out.print(it.next()+"\t");

      

    }

    System.out.println();

    @SuppressWarnings("unused")

    Enumeration et=hashtable.elements();

    while(et.hasMoreElements()){

       System.out.print(et.nextElement()+"\t");

      

    }

   

}

}

输出结果:

0   1   2   3   4   5   6   7   8   9  

9   8   7   6   5   4   3   2   1   0  

Enumeration 与 iterator 都是迭代输出的方法,Enumeration先进后出,iterator先进先出。


0 0