`
l514941630
  • 浏览: 46101 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

java之Enumeration接口

阅读更多
Enumeration接口
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枚举对象还含有元素,该方法得到对象中的下一个元素。

【例】
package ch16;
import java.util.*;
class DemoEnumeration{
     public static void main(String[] args){
          //实例化MyDataStruct类型的对象
          MyDataStruct mds=new MyDataStruct();
          //得到描述myDataStruct类型对象的enumeration对象
          Enumeration men =mds.getEnum();
         //使用对象循环显示myDataStruct类型的对象中的每一个元素
         while (men.hasMoreElements())
               System.out.println(men.nextElement());
    }
}

//MyEnumeration类实现Enumeration接口
class MyEnumeration implements Enumeration
{
      int count; // 计数器
      int length; //存储的数组的长度
      Object[] dataArray; // 存储数据数组的引用
      //构造器
      MyEnumeration(int count,int length,Object[] dataArray){
            this.count = count;
            this.length = length;
            this.dataArray = dataArray;
      }
      public boolean hasMoreElements() {
            return (count< length);
      }
      public Object nextElement() {
            return dataArray[count++];
      }
}
//MyDataStruct类用于实例化一个简单的、可以提供enumeration对象
//给使用程序的数据结果对象
class MyDataStruct
{
     String[] data;
     // 构造器
     MyDataStruct(){
          data = new String[4];
          data[0] ="zero";
          data[1]="one";
          data[2] ="two";
          data[3]="three";
     }
    // 返回一个enumeration对象给使用程序
    Enumeration getEnum() {
          return new MyEnumeration(0,data.length,data);
    }

}



程序的运行结果为:
zero
one
two
three

分享到:
评论

相关推荐

    详解Java中的迭代迭代器Iterator与枚举器Enumeration

    Iterator与Enumeration分别是实现迭代器和枚举器类的接口,下面就带大家来详解Java中的迭代迭代器Iterator与枚举器Enumeration,以及它们之间的区别.

    7.尚硅谷_java基础_java集合

    Java 集合概述 Collection 接口 Iterator 接口 Set List Map Collections 工具类 Enumeration

    Java开发详解.zip

    031309_【第13章:Java类集】_foreach及Enumeration接口笔记.pdf 031310_【第13章:Java类集】_Map接口笔记.pdf 031311_【第13章:Java类集】_Map接口使用的注意事项笔记.pdf 031312_【第13章:Java类集】_...

    Java期末复习-类集框架

    Java类集框架 最大单值操作父接口Collection及其子接口、子类: List接口、ArrayList类、Vector类、栈操作类Stack、链表操作类LinkList、队列操作接口Queue、Set接口、HashSet类、TreeSet类、SortedSet接口 双值操作...

    Java工具包提供了强大的数据结构

    在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties) 以上这些类是传统遗留的,在Java2...

    Java集合面试题.docx

    Enumeration 和 Iterator 接口的区别? 8. 为何没有像 Iterator.add()这样的方法,向集合中添加元素? 9. 为何迭代器没有一个方法可以直接获取下一个元素,而不需要 移动游标? 10. Iterater 和 ListIterator ...

    疯狂JAVA讲义

    7.9 烦琐的接口:Enumeration 289 7.10 本章小结 290 本章练习 290 第8章 泛型 291 8.1 泛型入门 292 8.1.1 编译时不检查类型的异常 292 8.1.2 手动实现编译时检查类型 293 8.1.3 使用泛型 294 8.2 深入泛型...

    Java基础_Java集合

    Java 集合概述  Collection 接口  Iterator 接口  Set  List  Map  Collections 工具类  Enumeration

    java编程基础,应用与实例

    9.5 Enumeration接口 144 9.6 巩固练习 145 第10章 内隐类(inner class) 146 10.1 静态类(static class) 146 10.2 成员类(member class) 147 10.3 局部类(local class) 150 10.4 匿名类(anonymous ...

    Java 数据结构

    在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties) 以上这些类是传统遗留的,在Java2中...

    Practical Java(中文版(繁体+简体))

    實踐39:不要使用Enumeration或Iterator來遍歷Vector 135 實踐40:使用System.arraycopy()來複製arrays 136 實踐41:優先使用array,然後才考慮Vector和ArrayList 138 實踐42:儘可能復用(reuse)對象 141 實踐43:...

    Java开发技术大全 电子版

    11.4.1Enumeration接口简介366 11.4.2向量类(Vector)使用示例367 11.4.3栈(Stack)使用示例369 11.4.4字典(Dictionary)简介370 11.4.5哈希表(Hashtable)简介371 11.5本章小结371 第12章类型包装器、...

    Java集合类——前言

    emmmm大致可以看出,上面有三巨头,即Iterator、Collection、Map(虚线框是接口,实线框是类),Java的集合类主要就是由Collection和Map两个接口派生而出,而Iterator主要起的是遍历器的作用。 先说Collection ...

    java图书馆swing源码-Oea.svg:SVGGUI和图形库遵循JavaSwing构建。Oea框架提供了三个Javascript库,1-

    java图书馆swing源码oea.svg 更新时间:2016 ...接口的操作与编写图形应用程序分离。 该包为 JavaScript 开发人员提供了更高级别的抽象,以便独立于 DOM API 操作图形。 它还提供绘制复杂的二维形状、处理字

    gir2java:尝试从 GObject Introspection XML 文件创建 Java 绑定源

    为 .girs 中的&lt;enumeration&gt;和元素生成枚举 使用元素生成包名 为不透明结构创建空接口 为带有字段的和元素创建类 跟踪 .gir 文件中定义的类型,并解析对它们的引用 在某种程度上处理数组类型 读取静态映射列表 保留...

    ao-collections-transformers:Java的双向集合转换

    支持所有主要的集合框架接口(Enumeration,ListIterator,Map,Set,SortedSet,Queue,Deque等)。 占地面积小,设备齐全,没有传递依赖项-不属于大型整体软件包。 动机 小时候,是我绝对的最爱。我和他们一起玩了...

    xml入门教程/xml入门教程

    只有结构符合所引用的DTD文件的XML文件才能称之为有效的XML文件。 DTD(文档类型定义) !DOCTYPE 定义DTD文件名 !ELEMENT 定义元素中可用的数据类型 #PCDATA 可解析字符串。 1)DTD的调用 方式一:调用内部文档类型...

Global site tag (gtag.js) - Google Analytics