ps:iterator和枚举类的区别
1.iterator多了一个删除元素的api
2.其次在定义名称上貌似改进了些
下面是转载的枚举类使用:
Enumeration
Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。
Enumeration接口定义了从一个数据结构得到连续数据的手段。
例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。 Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提供方法协议。
Enumertion接口中仅定义了下面两个方法:
boolean hasMoreElemerts() 测试Enumeration枚举对象中是否还含有元素,如果返回true,则表示还含有至少一个的元素。 ·
Object nextElement() 如果Bnumeration枚举对象还含有元素,该方法得到对象中的下一个元素。
Enumeration是个接口,不是类,再次,这个东西就是为了实现遍历的,现在已经被迭代器Iterator取代了
例1:
MyDataSttuct.java
- packagecn.run.zuoye_3;
- importjava.util.Enumeration;
- publicclassMyDataSttuct{
- String[]data;
- //构造器
- publicMyDataSttuct(){
- data=newString[4];
- data[0]="zero";
- data[1]="one";
- data[2]="two";
- data[3]="three";
- }
- //返回一个enumeration对象给使用程序
- EnumerationgetEnum(){
- returnnewMyEnumerator(0,data.length,data);
- }
- }
MyEnumerator.java
- packagecn.run.zuoye_3;
- importjava.util.Enumeration;
- classMyEnumeratorimplementsEnumeration
- {
- intcount;//计数器
- intlength;//存储的数组的长度
- Object[]dataArray;//存储数据数组的引用
- //构造器
- publicMyEnumerator(intcount,intlength,Object[]dataArray){
- this.count=count;
- this.length=length;
- this.dataArray=dataArray;
- }
- publicbooleanhasMoreElements(){
- return(count<length);
- }
- publicObjectnextElement(){
- returndataArray[count++];
- }
- }
DemoEnumeration.java
- packagecn.run.zuoye_3;
- importjava.util.*;
- classDemoEnumeration{
- publicstaticvoidmain(String[]args){
- //实例化MyDataStruct类型的对象
- MyDataSttuctmySataStruct=newMyDataSttuct();
- //得到描述myDataStruct类型对象的enumeration对象
- Enumeration<MyDataSttuct>myEnumeration=mySataStruct.getEnum();
- System.out.println(myEnumeration);
- //使用对象循环显示myDataStruct类型的对象中的每一个元素
- while(myEnumeration.hasMoreElements())
- System.out.println(myEnumeration.nextElement());
- }
- }
例2:
- packagecn.run.zuoye_3;
- importjava.util.Enumeration;
- importjava.util.Properties;
- publicclassPropertiesTest{
- publicstaticvoidmain(String[]args){
- //获取系统属性文件中的键值对
- Propertiespro=System.getProperties();
- //把属性文件中的值放入枚举中+泛型
- //Enumerationenu=pro.propertyNames();
- Enumerationenu=pro.keys();
- //遍历枚举
- while(enu.hasMoreElements()){
- //获取枚举中的键
- Stringkeys=(String)enu.nextElement();
- //通过键得到对应的值
- Stringvalues=(String)pro.get(keys);
- System.out.println("系统属性文件中的数据是:【"+keys+"="+values+"】");
- }
- }
- }