早在Java SE 1.0版,就存在集合类。集合类可以用来管理一组相关的对象。当需要查看、使用集合中的所有对象时可以使用枚举接口对其进行遍历。枚举接口中定义了两个方法,它通常和向量一起使用。本实例将演示其用法,实例运行效果如图

8.7.png

实现了Enumeration接口的对象可以生成一系列元素,每次生成一个。通过连续调用nextElement()方法可以连续获得枚举接口中的元素。但是如果枚举接口中已经没有元素,调用该方法会抛出异常。因此应该先用hasMoreElements()方法判断枚举中是否还有可用元素。该接口定义了两个方法,其声明如下:

boolean hasMoreElements()

测试枚举接口中是否还含有可用元素,因为其返回值是boolean,所以适合放在while循环中。

E nextElement()

如果枚举接口中还有可用元素,则返回下一个元素,否则会出现NoSuchElementException

编写EnumerationTest类,在该类的main()方法中,首先在向量中增加3个元素,然后利用枚举接口将其取出。代码如下:

package com.mingrisoft.enumerationtest;

import java.util.Enumeration;
import java.util.Vector;

public class EnumerationTest {
    public static void main(String[] args) {
        Vector<Integer> vector = new Vector<Integer>();
        for (int i = 0; i < 3; i++) {
            vector.add(i);
            System.out.println("在向量中增加元素:" + i);
        }
        Enumeration<Integer> e = vector.elements();
        while (e.hasMoreElements()) {
            System.out.println("获得向量中的元素:" + e.nextElement());
        }
    }
}

说明:Java SE 5.0版中,新增了一个重要特性——泛型。该特性可以用来控制集合中元素的类型。

心法领悟:枚举接口的升级。

随着Java的不断发展,新增加了一个Iterator接口,该接口不仅包括了枚举接口的功能,还增加了一个remove()方法。另外,该接口对方法的名字进行了优化:hasNext()用来测试是否还有可用元素,next()用来获得元素。在新类中,推荐使用Iterator()接口来实现遍历功能。