java.util.Enumeration Interface

An object that implements the Enumeration interface generates a series of elements, one at a time. Successive calls to the nextElement method return successive elements of the series.
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 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.

In this tutorial you can learn about java.util.Enumeration Interface and its examples. And also learn how to use java.util.Enumeration Interface.

java.util.Enumeration Interface Example
/* Save with file name EnumerationExample.java */

public class EnumerationExample
{
	public static void main(String args[])
	{
		//java.util.Vector DECLARATION
		java.util.Vector v;

		//java.util.Vector OBJECT CREATION
		//USING DEFAULT CONSTRUCTOR
		v = new java.util.Vector();

		//ADD AN ELEMENT
		v.add(new Integer(117));

		//ADD ANOTHER ELEMENT
		v.addElement(new Boolean(false));

		//java.util.Enumeration Usage
		java.util.Enumeration e = v.elements();
		while(e.hasMoreElements())
		{
			System.out.println(e.nextElement());
		}
	}
}
                        

Use of java.util.Enumeration in SequenceInputStream class found in the java.io package. The class has a constructor that accepts an Enumeration.

Following Example will be executed successfully whenever 3 files i.e. file1.txt, file2.txt and file3.txt exists in the current directory of this example.

Create above three files with any text in those files and run the example, the example displays the contents of these 3 files.

java.util.Enumeration Interface Example 2
/* java.util.Enumeration interface Example with SequenceInputStream class */
/* Save with file name EnumerationExample2.java */

import java.util.Enumeration;
import java.util.Vector;
import java.io.FileInputStream;
import java.io.SequenceInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;

public class EnumerationExample2
{
	public static void main(String args[])
	{
		try
		{
			//java.util.Vector DECLARATION
			Vector v = new Vector(3);

			v.add(new FileInputStream("file1.txt"));
			v.add(new FileInputStream("file2.txt"));
			v.add(new FileInputStream("file3.txt"));

			Enumeration e = v.elements();
			SequenceInputStream sis = new SequenceInputStream(e);
			InputStreamReader isr = new InputStreamReader(sis);
			BufferedReader br = new BufferedReader(isr);
			String line;
			while ((line = br.readLine()) != null)
			{
				System.out.println(line);
			}
			br.close();
		}
		catch(Exception ex)
		{
			System.out.println("Problem Occurred : " + ex);
		}
	}
}
                        

You will learn how to create custom Enumeration from the following example.

java.util.Enumeration Interface Example 3
/* Custom Enumeration Example */
/* Save with file name ArrayEnumeration.java */

import java.util.Enumeration;
import java.lang.reflect.Array;

public class ArrayEnumeration implements Enumeration
{
	private final int size;
	private int cursor;
	private final Object array;
	public ArrayEnumeration(Object obj)
	{
		Class type = obj.getClass();
		if (!type.isArray())
		{
			throw new IllegalArgumentException("Invalid type: " + type);
		}
		size = Array.getLength(obj);
		array = obj;
	}
	public boolean hasMoreElements()
	{
		return (cursor<size);
	}
	public Object nextElement()
	{
		return Array.get(array, cursor++);
	}
}
                        
java.util.Enumeration Interface Example 4
/* java.util.Enumeration interface custom Example */
/* Save with file name EnumerationExample3.java */

public class EnumerationExample3
{
	public static void main(String args[])
	{
		//String Array Creation
		String str[] = {"String1","String2","String3"};

		//ArrayEnumeration Creation
		ArrayEnumeration ae = new ArrayEnumeration(str);

		//ArrayEnumeration Usage
		while(ae.hasMoreElements())
		{
			System.out.println(ae.nextElement());
		}
	}
}