标签:style blog http color java 使用 os io
摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢!
当我写网络编程的时候,我发现了这个接口。很神奇的是以前都没用过,NetworkInterface.getNetworkInterfaces()返回的是Enumeration载体这NetworkInterface对象。Enumeration是java.util中的一个接口类,在Enumeration中封装了有关枚举数据集合的方法。Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。
Enumeration接口定义了从一个数据结构得到连续数据的手段。
通常用 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
下面我们就实现这个接口来完成一个小功能:
MyDataStruct类用于实例化一个简单的、可以提供enumeration对象,给使用程序的数据结果对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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
来自:java基础
书法是人艺术和美的产物
标签:style blog http color java 使用 os io
原文地址:http://blog.csdn.net/jeffli1993/article/details/38523571