Module java.base
Package java.util

Interface Enumeration<E>

类型参数:
E - 此枚举返回的元素类型
所有已知的子接口:
NamingEnumeration<T>
所有已知的实现类:
StringTokenizer

public interface Enumeration<E>
实现Enumeration接口的对象会生成一系列元素,每次一个。对nextElement方法的连续调用会返回系列的连续元素。

例如,要打印Vector<E> v的所有元素:

   for (Enumeration<E> e = v.elements(); e.hasMoreElements();)
       System.out.println(e.nextElement());

提供了用于枚举向量元素、哈希表键和哈希表值的方法。枚举也用于指定SequenceInputStream的输入流。

API注释:
此接口的功能与Iterator接口重复。此外,Iterator添加了一个可选的remove操作,并且具有更短的方法名称。新的实现应考虑优先使用Iterator而不是Enumeration。可以通过使用asIterator()方法将Enumeration适配为Iterator
自版本:
1.0
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    default Iterator<E>
    返回一个遍历此枚举剩余元素的Iterator
    boolean
    检查此枚举是否包含更多元素。
    E
    如果此枚举对象至少还有一个元素要提供,则返回此枚举的下一个元素。
  • Method Details

    • hasMoreElements

      boolean hasMoreElements()
      检查此枚举是否包含更多元素。
      返回:
      如果此枚举对象至少还有一个元素要提供,则返回true; 否则返回false
    • nextElement

      E nextElement()
      如果此枚举对象至少还有一个元素要提供,则返回此枚举的下一个元素。
      返回:
      此枚举的下一个元素。
      抛出:
      NoSuchElementException - 如果没有更多元素存在。
    • asIterator

      default Iterator<E> asIterator()
      返回一个遍历此枚举剩余元素的Iterator。如果在调用asIterator后对此枚举调用任何方法,则遍历是未定义的。
      API注释:
      此方法旨在帮助将生成Enumeration实例的代码适配为消费Iterator实例的代码。例如,JarFile.entries()方法返回一个Enumeration<JarEntry>。这可以转换为Iterator,然后可以使用forEachRemaining()方法:
      
           JarFile jarFile = ... ;
           jarFile.entries().asIterator().forEachRemaining(entry -> { ... });
       
      (注意,还有一个JarFile.stream()方法返回一个条目的Stream,在某些情况下可能更方便。)
      实现要求:
      默认实现返回一个Iterator,其hasNext方法调用此枚举的hasMoreElements方法,next方法调用此枚举的nextElement方法,remove方法抛出UnsupportedOperationException
      返回:
      表示此枚举剩余元素的Iterator
      自版本:
      9