摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢!

记起2年前,高中生活最多的是老师的批评。谢谢! -泥沙砖瓦浆木匠

一.初识Enumeration

二.功能的使用

三.演示Enumeration接口的使用

一.初识Enumeration

当我写网络编程的时候,我发现了这个接口。很神奇的是以前都没用过,NetworkInterface.getNetworkInterfaces()返回的是Enumeration载体这NetworkInterface对象。Enumeration是java.util中的一个接口类,在Enumeration中封装了有关枚举数据集合的方法。Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。

注意:此接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。

二.功能的使用

java.util Enumeration<E>

通常用 Enumeration 中的以下两个方法打印向量中的所有元素:

(1) boolean hasMoreElements()
          测试此枚举是否包含更多的元素。

(2) E nextElement()
          如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。

用法一:

vec 是接口实现类 Vector( 集合 ) 的对象, vec.elements() 获得 Vector( 集合 ) 的一个元素。

for(Enumeration e = vec.elements(); e.hasMoreElements();)

{
 System.out.println(e.nextElement()); 
}

用法二:

e is an object that implements the Enumeration interface

while (e.hasMoreElements()) {

    Object o= e.nextElement();

    System.out.println(o);

}

下面举个例子:

public class TestEnumeration{
public static void main(String[] args){
Vector v = new Vector();
v.addElement("Li");
v.addElement("YYY");
v.addElement("Brown"); Enumeration e = v.elements();
while(e.hasMoreElements()){
String value = (String)e.nextElement();
System.out.println(value);
}
}
}

你可以看到以下输出

Li
YYY
Brown

三.演示Enumeration接口的使用

下面我们就实现这个接口来完成一个小功能:

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);
}
}

  

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++];
}
}

测试类 MainClass

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

你可以看到下面输出:

zero
one
two
three

四.感谢知识来源和小结

一.初识Enumeration

二.功能的使用

三.演示Enumeration接口的使用

来自:java基础

书法是人艺术和美的产物

java扫盲 接口 Enumeration的更多相关文章

  1. 深入理解Java的接口和抽象类(转)

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  2. 深入理解Java的接口和抽象类

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  3. java微信接口之五—消息分组群发

    一.微信消息分组群发接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_t ...

  4. java微信接口之四—上传素材

    一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...

  5. android 学习随笔二十七(JNI:Java Native Interface,JAVA原生接口 )

    JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? 首先,Java语言提供的类 ...

  6. [转载]深入理解JAVA的接口和抽象类

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  7. Java序列化接口的作用总结

    一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做”持久化”. 把堆内存中的对象的生命周期延长,存入硬盘,做持久化操作.当下次再需要这个对象的时候,我们不用new了,直接从硬盘中读取就可以了. ...

  8. 深入理解Java的接口和抽象类 _摘抄

    http://www.cnblogs.com/dolphin0520/p/3811437.html 原文 深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可 ...

  9. JAVA 函数式接口与c#委托对应关系(一)

    C# Action委托 VS JAVA Action 接口函数 1.c#:Action 封装一个方法,该方法不具有参数并且不返回值. 构造实体类类 using System; namespace Ac ...

随机推荐

  1. C# ListView应用

    C#  ListView应用 1. 添加表头标题的方法 a. 直接在ListView控件上编写 b. 通过代码编写 //动态添加lstv_ReaderList列表头 /* lstv_ReaderLis ...

  2. 《Linux就该这么学》第十六天课程

    今天笔记有点少就不发了,分享一下第23章 使用OpenLDAP部署目录服务很实用 下面是DHCP动态管理地址,如需深入学习请前往 https://www.linuxprobe.com/chapter- ...

  3. MySQL系统变量 sql_mode 详解

    转载自:http://tech.it168.com/a2012/0822/1388/000001388401_all.shtml MySQL数据类型:SQL_MODE设置不容忽视 SQL_MODE可能 ...

  4. appium手机键盘实现方法

    首先引入appium的webdriver from appium import webdriver 方法1 AppiumDriver实现了在上述功能,代码如下(java版本) driver.sendK ...

  5. 底图与蒙版的过渡效果transition

    我用2种方法写了底图与蒙版的过渡效果 方法一:用js方法 <!DOCTYPE html> <html> <head> <meta http-equiv=&qu ...

  6. Windows与系统信息相关的DOS命令

    首先,以管理员身份打开CMD命令框, 输入 start msinfo32:回车之后,出现一个弹窗,上面有大部分的系统信息:系统版本,电脑名称,BIOS,CPU,内存等: wmic bios:显示BIO ...

  7. webstorm验证码

    2017-2-16 亲测可用 http://idea.imsxm.com/ webstorm10 注册码 User or company Name: EMBRACE ===== LICENSE KEY ...

  8. IO模型的介绍

    Stevens 在文章中的一种IO Model: ****blocking IO    #阻塞 IO   (系统调用不返回结果并让当前线程一直阻塞,只有当该系统调用获得结果或者超时出错才返回) *** ...

  9. window、view相关

    View.Window以及Activity主要是用于显示并与用户交互window view activity surfaceView 三者间的关系: 在Activity中要设置View时,通常用的方法 ...

  10. java0618

    1. java的基本数据类型,各占多少字节? byte 8位 short 16位 int 32位 long 64位 float 32位 double 64位 boolean 1位 char 16位 2 ...