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

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

//MyEnumeration类实现Enumeration接口
class MyEnumerator 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 MyDataSttuct
{
     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);
    }
时间: 2024-08-10 22:45:55

Enumeration-老化的迭代的相关文章

JSTL标签库的使用语法

在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JSTL的迭代标签可以在很大的程度上简化迭代操作. JSTL所支持的迭代标签有两个,分别是<c:forEach>和<c:forTokens>.在这里介绍的是<c:forEach>标签. 简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容.它既可以进行

【转】JSTL详解

JSTL详解(一) 先来搭下环境,jstl的包当然是不能少的拉.其次,下载必须的标签库或者是java的标签库文件. 将jstl 1.1.jar加到class中,(这就不要我详细的讲了吧),然后将标签库放到WEB-INF下或则将java的标签库文件(*.jar)放到WEB-INF/lib下,就可以写测试代码了. first_jstl.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"

jstl中&lt;c:forEach&gt;的用法

在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JSTL的迭代标签可以在很大的程度上简化迭代操作. JSTL所支持的迭代标签有两个,分别是<c:forEach>和<c:forTokens>.在这里介绍的是<c:forEach>标签. 简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容.它既可以进行

JSTL标签用法 详解

在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JSTL的迭代标签可以在很大的程度上简化迭代操作. JSTL所支持的迭代标签有两个,分别是<c:forEach>和<c:forTokens>.在这里介绍的是<c:forEach>标签. 简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容.它既可以进行

c:foreach 详解

本文转自:http://www.blogjava.net/caizh2009/articles/278999.html 在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JSTL的迭代标签可以在很大的程度上简化迭代操作. JSTL所支持的迭代标签有两个,分别是<c:forEach>和<c:forTokens>.在这里介绍的是<c:fo

集合输出接口-Iterator迭代输出-古老枚举输出:Enumeration

1.Iterator迭代输出(95%) Iterator是集合输出的主要接口,那么此接口定义如下: public interface Iterator<E> { public boolean hasNext() ; // 判断是否还有下一个数据 public E next() ; // 取得当前数据 } 实现代码: 1 package cn.demo; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import j

JDK的弃儿:Vector、Stack、Hashtable、Enumeration

随着JDK的发展,一些设计缺陷或者性能不足的类库难免会被淘汰,最常见的就是Vector.Stack.HashTable和Enumeration了. Vector(@since 1.0) 首先看看Vector的UML类图,可以看出,他是一个与ArrayList有着相同继承体系的类,大致功能也和ArrayList一样.Vector与ArrayList最大的不同点在于它是线程安全的,因为其内部几乎所有方法都用了synchronized来修饰.但是,Synchronized是重量级锁,读写操作也没有做适

已经废弃的枚举Enumeration

package com.runoob.Collection; import java.util.Enumeration; import java.util.Iterator; import java.util.Vector; public class EnumerationDemo { public static void main(String[] args) { /* * Enumeration:枚举 * 具备枚举取出方式的容器只有Vector */ Vector v = new Vecto

Iterator——迭代接口

迭代对于JAVA的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator();           while(iterator.hasNext()){               String string = iterator.next();               //do something           } 迭代其实我们可以简单地理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类,它

集合框架、泛型、迭代(java基础知识十六)

1.ArrayList存储自定义对象并遍历 此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException.* ArrayList存储自定义对象并遍历 ArrayList<Person> list = new ArrayList<>(); list.