迴歸JDK源代碼(2)Enumeration接口

如今的Java程序員習慣使用Iterator<E>接口或者加強for循環來遍歷集合。若是回到JDK 1.0,Enumeration接口則是遍歷向量、哈希表的不二之選。本節就解讀和翻譯一下Enumeration<E>接口的源代碼。固然,有一點仍是得再強調一下:Enumeration<E>的泛型實在JDK 1.5時加上去的,最初的版本是沒有泛型的。java

package java.util;

/**
 * An object that implements the Enumeration interface generates a
 * series of elements, one at a time(一次一個). Successive calls to the
 * <code>nextElement</code> method return successive(逐個) elements of the
 * series.
* 實現了Enumeration接口的對象自動生成一系列元素,一次一個。
* 逐次調用nextElement()方法,依次返回系列元素。 * <p> * For example, to print all elements of a <tt>Vector&lt;E&gt;</tt> <i>v</i>:
* 舉例而言,打印Vector<V>中的全部元素 * <pre> * for (Enumeration<E> e = v.elements(); e.hasMoreElements();) * System.out.println(e.nextElement());</pre> * <p> * Methods are provided to enumerate through the elements of a * vector, the keys of a hashtable, and the values in a hashtable. * Enumerations are also used to specify the input streams to a * <code>SequenceInputStream</code> * <p>
* 全部的方法都被提供來枚舉Vector、hashtable中的鍵、值的元素。
* Enumeration<E>也被用來指定一個到SequenceInputStream的輸入流。
* * NOTE: The functionality(功能) of this interface is duplicated by the Iterator * interface. In addition, Iterator adds an optional remove operation, and * has shorter method names. New implementations should consider using * Iterator in preference to(優先於...) Enumeration. * 提示:Enumeration<E>接口的功能已經被Iterator<E>接口賦複製。除此以外,Iterator<E>接口
* 添加了一個可選刪除(元素)操做,以及更加簡短的方法名。新的實現應該優先考慮使用Iterator<E>
* 接口,而非Enumeration<E>。
* *
@see java.util.Iterator * @see java.io.SequenceInputStream * @see java.util.Enumeration#nextElement() * @see java.util.Hashtable * @see java.util.Hashtable#elements() * @see java.util.Hashtable#keys() * @see java.util.Vector * @see java.util.Vector#elements() * * @author Lee Boynton * @since JDK1.0 歷史遺留問題 */ public interface Enumeration<E> { /** * Tests if this enumeration contains more elements. * 測試是否此枚舉還包含有元素。 * @return <code>true</code> if and only if this enumeration object * contains at least one more element to provide; * <code>false</code> otherwise.
* 當且僅當此枚舉對象還有至少一個元素能夠提供,返回true;不然,返回false。
*/ boolean hasMoreElements(); // 別少了s,老外寫代碼是很重視單複數滴 /** * Returns the next element of this enumeration if this enumeration * object has at least one more element to provide. * 若是此枚舉對象還有至少一個元素能夠提供,那麼返回此枚舉的下一個元素。 * @return the next element of this enumeration.
* 返回此枚舉的下一個元素 *
@exception NoSuchElementException if no more elements exist.
* 若是沒有更多的元素存在,拋出NoSuchElementException異常
*/ E nextElement(); }

閱讀完Enumeration<E>的源代碼和翻譯以後,想必您和我都有同一個想法:這玩意並無什麼*用。程序員

那麼爲何咱們還要去了解這個接口的源代碼呢?做用就是、、、可以裝逼。ide

相關文章
相關標籤/搜索