11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package java.util; 27 28 /** 29 * An object that implements the Enumeration interface generates a 30 * series of elements, one at a time. Successive calls to the 31 * <code>nextElement</code> method return successive elements of the 32 * series. 33 * <p> 34 * For example, to print all elements of a <tt>Vector<E></tt> <i>v</i>: 35 * <pre> 36 * for (Enumeration<E> e = v.elements(); e.hasMoreElements();) 37 * System.out.println(e.nextElement());</pre> 38 * <p> 39 * Methods are provided to enumerate through the elements of a 40 * vector, the keys of a hashtable, and the values in a hashtable. 41 * Enumerations are also used to specify the input streams to a 42 * <code>SequenceInputStream</code>. 43 * 44 * @apiNote 45 * The functionality of this interface is duplicated by the {@link Iterator} 46 * interface. In addition, {@code Iterator} adds an optional remove operation, 47 * and has shorter method names. New implementations should consider using 48 * {@code Iterator} in preference to {@code Enumeration}. It is possible to 49 * adapt an {@code Enumeration} to an {@code Iterator} by using the 50 * {@link #asIterator} method. 51 * 52 * @see java.util.Iterator 53 * @see java.io.SequenceInputStream 54 * @see java.util.Enumeration#nextElement() 55 * @see java.util.Hashtable 56 * @see java.util.Hashtable#elements() 57 * @see java.util.Hashtable#keys() 58 * @see java.util.Vector 59 * @see java.util.Vector#elements() 60 * 61 * @author Lee Boynton 62 * @since 1.0 63 */ 64 public interface Enumeration<E> { 65 /** 66 * Tests if this enumeration contains more elements. 67 * 68 * @return <code>true</code> if and only if this enumeration object 69 * contains at least one more element to provide; 70 * <code>false</code> otherwise. 71 */ 72 boolean hasMoreElements(); 73 74 /** 75 * Returns the next element of this enumeration if this enumeration 76 * object has at least one more element to provide. 77 * 78 * @return the next element of this enumeration. 79 * @exception NoSuchElementException if no more elements exist. 80 */ 81 E nextElement(); 82 83 /** 84 * Returns an {@link Iterator} that traverses the remaining elements 85 * covered by this enumeration. Traversal is undefined if any methods 86 * are called on this enumeration after the call to {@code asIterator}. 87 * 88 * @apiNote 89 * This method is intended to help adapt code that produces 90 * {@code Enumeration} instances to code that consumes {@code Iterator} | 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package java.util; 27 28 /** 29 * An object that implements the Enumeration interface generates a 30 * series of elements, one at a time. Successive calls to the 31 * {@code nextElement} method return successive elements of the 32 * series. 33 * <p> 34 * For example, to print all elements of a {@code Vector<E>} <i>v</i>: 35 * <pre> 36 * for (Enumeration<E> e = v.elements(); e.hasMoreElements();) 37 * System.out.println(e.nextElement());</pre> 38 * <p> 39 * Methods are provided to enumerate through the elements of a 40 * vector, the keys of a hashtable, and the values in a hashtable. 41 * Enumerations are also used to specify the input streams to a 42 * {@code SequenceInputStream}. 43 * 44 * @apiNote 45 * The functionality of this interface is duplicated by the {@link Iterator} 46 * interface. In addition, {@code Iterator} adds an optional remove operation, 47 * and has shorter method names. New implementations should consider using 48 * {@code Iterator} in preference to {@code Enumeration}. It is possible to 49 * adapt an {@code Enumeration} to an {@code Iterator} by using the 50 * {@link #asIterator} method. 51 * 52 * @see java.util.Iterator 53 * @see java.io.SequenceInputStream 54 * @see java.util.Enumeration#nextElement() 55 * @see java.util.Hashtable 56 * @see java.util.Hashtable#elements() 57 * @see java.util.Hashtable#keys() 58 * @see java.util.Vector 59 * @see java.util.Vector#elements() 60 * 61 * @author Lee Boynton 62 * @since 1.0 63 */ 64 public interface Enumeration<E> { 65 /** 66 * Tests if this enumeration contains more elements. 67 * 68 * @return {@code true} if and only if this enumeration object 69 * contains at least one more element to provide; 70 * {@code false} otherwise. 71 */ 72 boolean hasMoreElements(); 73 74 /** 75 * Returns the next element of this enumeration if this enumeration 76 * object has at least one more element to provide. 77 * 78 * @return the next element of this enumeration. 79 * @exception NoSuchElementException if no more elements exist. 80 */ 81 E nextElement(); 82 83 /** 84 * Returns an {@link Iterator} that traverses the remaining elements 85 * covered by this enumeration. Traversal is undefined if any methods 86 * are called on this enumeration after the call to {@code asIterator}. 87 * 88 * @apiNote 89 * This method is intended to help adapt code that produces 90 * {@code Enumeration} instances to code that consumes {@code Iterator} |