首页 > 编程语言 >Java集合接口Enumeration

Java集合接口Enumeration

时间:2022-11-05 21:01:47浏览次数:58  
标签:Java 迭代 Iterator 接口 Enumeration 集合

Java集合接口Enumeration

Enumeration接口是Iterator迭代器的“古老版本”,从JDK 1.0开始,Enumeration接口就已经存在了(Iterator从JDK 1.2才出现)。

Enumeration接口只有两个名字很长的方法:

  • boolean hasMoreElements():如果此迭代器还有剩下的元素,则返回true。
  • Object nextElement():返回该迭代器的下一个元素,如果还有的话(否则抛出异常)。

通过这两个方法不难发现,Enumeration接口中的方法名称冗长,难以记忆,而且没有提供Iterator的remove()方法。如果现在编写Java程序,应该尽量采用Iterator迭代器,而不是用Enumeration迭代器。

提示:Java之所以保留Enumeration接口,主要是为了照顾以前那些“古老”的程序,那些程序里大量使用了Enumeration接口,如果新版本的Java里直接删除Enumeration接口,将会导致那些程序全部出错。在计算机行业有一条规则:加入任何规则都必须慎之又慎,因为以后无法删除规则。

实际上,前面介绍的Vector(包括其子类Stack)、Hashtable两个集合类,以及另一个极少使用的BitSet,都是从JDK 1.0遗留下来的集合类,而Enumeration接口可用于遍历这些“古老”的集合类。对于ArrayList、HashMap等集合类,不再支持使用Enumeration迭代器。

下面程序示范了如何通过Enumeration接口来迭代Vector和Hashtable:

查看代码

上面程序使用Enumeration迭代器来遍历Vector和Hashtable集合里的元素,其工作方式与Iterator迭代器的工作方式基本相似。但使用Enumeration迭代器时方法名更加冗长,而且Enumeration迭代器只能遍历Vector、Hashtable这种古老的集合,因此通常不要使用它。除非在某些极端情况下,不得不使用Enumeration,否则都应该选择Iterator迭代器。

标签:Java,迭代,Iterator,接口,Enumeration,集合
From: https://www.cnblogs.com/hzhiping/p/16861266.html

相关文章

  • Java工具类Collections
    Java工具类Collections1.*Collections介绍Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作......
  • Java的HashSet和HashMap性能选项
    Java的HashSet和HashMap性能选项1.*HashSet和HashMap的性能选项对于HashSet及其子类而言,它们采用hash算法来决定集合中元素的存储位置,并通过hash算法来控制集合的大小;对......
  • SpringBoot实战笔记:02_使用注解与Java配置的Aop示例
    转载:https://blog.csdn.net/android_zyf/article/details/79579875<!--02_新的依赖--><!--导入spring的aop支持--><dependency><groupId>${spring-groupId}</groupId>......
  • Java的Map集合
    Java的Map集合1.*MapMap用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value都可以是任何引用类......
  • java IO复制文件
    packagecom.tedu.day1201;importjava.io.FileInputStream;importjava.io.FileOutputStream;publicclassCopyFile{publicstaticvoidmain(String[]args)......
  • JAVA----线程生命周期和状态
    1.新建状态(New)新创建了一个线程对象,但还没有调用start()方法。实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了新建状态。2.Runnable状态......
  • SpringBoot实战笔记:01_Spring中的Java配置
    转载:https://blog.csdn.net/android_zyf/article/details/79579862Spring4.x与SpringBoot都推荐使用Java配置xml配置:将bean的信息配置在xml配置文件中注解配置:在对应的bea......
  • Java学习——11.06
    Java的第一个大关。scanf函数的不同。这可能就是收到C语言的思维影响吧,Java中的scanf函数的运用和先前引用实例变量一样,要先new一个。例:Scannerscanner=newScann......
  • java常用API--->ArryList集合基础
    简述集合和数组的对比数组长度固定,集合长度可变。数组可存储基本数据类型和引用数据类型,集合只能存储引用数据类型,如果要存储基本数据类型要将其变成包装类Arrylis......
  • JavaIO流
    我们得先了解什么是文件?文件就是我们保存数据的地方(类似word文档,excel文件,png图片,MP4视频,…这些都是存储数据的地方)流的概述​要完成文件的读写操作,就必须了解C#中另外......