Enumeration接口

举报
tea_year 发表于 2021/12/22 23:52:05 2021/12/22
【摘要】 Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。 Enumeration接口提供了一套标准的方法,由于Enumer...
Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。 
Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提供方法协议。下面是一个使用的例子: 
//e is an object that implements the Enumeration interface
while (e.hasMoreElements()) {
    Object o= e.nextElement();
    System.out.println(o);
}
实现该接口的对象由一系列的元素组成,可以连续地调用nextElement()方法来得到 Enumeration枚举对象中的元素。Enumertion接口中仅定义了下面两个方法。 
·boolean hasMoreElemerts() 
测试Enumeration枚举对象中是否还含有元素,如果返回true,则表示还含有至少一个的元素。 
·Object nextElement() 
如果Bnumeration枚举对象还含有元素,该方法得到对象中的下一个元素。

1 Enumeration接口介绍

        Enumeration接口是Iterator迭代器的“古老版本”,从JDK1.0开始,Enumeration接口就已经存在了(Iterator从JDK1.2才出现)。Enumeration 接口比Iterator小,只有两个名字很长的方法: 

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

2 代码示例

Java代码

 收藏代码

  1. 
        
    1. import java.util.*;
    2. public class EnumerationTest
    3. {
    4. public static void main(String[] args)
    5. {
    6. Vector v = new Vector();
    7. v.add("电信用户");
    8. v.add("联通用户");
    9. Hashtable scores = new Hashtable();
    10. scores.put("线性代数" , 78);
    11. scores.put("大学物理" , 88);
    12. Enumeration em = v.elements();
    13. while (em.hasMoreElements())
    14. {
    15. System.out.println(em.nextElement());
    16. }
    17. Enumeration keyEm = scores.keys();
    18. while (keyEm.hasMoreElements())
    19. {
    20. Object key = keyEm.nextElement();
    21. System.out.println(key + "--->"
    22. + scores.get(key));
    23. }
    24. }
    25. }

     

 

3 运行结果

电信用户
联通用户
大学物理--->88
线性代数--->78

 

4 结果分析

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

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/105060063

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。