`
yuanlanjun
  • 浏览: 1176892 次
文章分类
社区版块
存档分类
最新评论

枚举类Enumeration的使用

 
阅读更多

Enumeration


Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。

Enumeration接口定义了从一个数据结构得到连续数据的手段。

例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。 Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提供方法协议。

Enumertion接口中仅定义了下面两个方法:

boolean hasMoreElemerts() 测试Enumeration枚举对象中是否还含有元素,如果返回true,则表示还含有至少一个的元素。 ·

Object nextElement() 如果Bnumeration枚举对象还含有元素,该方法得到对象中的下一个元素。


Enumeration是个接口,不是类,再次,这个东西就是为了实现遍历的,现在已经别迭代器Iterator取代了

例1:

MyDataSttuct.java

package cn.run.zuoye_3;

import java.util.Enumeration;

public class MyDataSttuct{ 
     String[] data;
     // 构造器
    public MyDataSttuct(){
          data=new String[4]; 
          data[0] ="zero";
          data[1]="one";
          data[2] ="two";
          data[3]="three";
    }
    // 返回一个enumeration对象给使用程序
    Enumeration getEnum() {
          return new MyEnumerator(0,data.length,data);
    }

}

MyEnumerator.java

package cn.run.zuoye_3;

import java.util.Enumeration;

class MyEnumerator implements Enumeration
{ 
      int count; // 计数器
      int length; //存储的数组的长度
      Object[] dataArray; // 存储数据数组的引用
      //构造器
      public MyEnumerator(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++];
      }
} 

DemoEnumeration.java

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

例2:
package cn.run.zuoye_3;

import java.util.Enumeration;
import java.util.Properties;

public class PropertiesTest {

	public static void main(String[] args) {
		// 获取系统属性文件中的键值对
		Properties pro = System.getProperties();
		// 把属性文件中的值放入枚举中+泛型
		// Enumeration enu = pro.propertyNames();
		Enumeration enu = pro.keys();
		// 遍历枚举
		while (enu.hasMoreElements()) {
			// 获取枚举中的键
			String keys = (String) enu.nextElement();
			// 通过 键 得到对应的 值
			String values = (String) pro.get(keys);
			System.out.println("系统属性文件中的数据是:【" + keys + "=" + values + "】");
		}
	}
}



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics