Related Articles

Related Articles

Enumeration Interface In Java
  • Last Updated : 09 Nov, 2020

java.util.Enumeration interface is one of the predefined interfaces, whose object is used for retrieving the data from collections framework variable( like Stack, Vector, HashTable etc.) in a forward direction only and not in the backward direction. This interface has been superceded by an iterator.

The Enumeration Interface defines the functions by which we can enumerate the elements in a collection of elements. For new code, Enumeration is considered obsolete. However, several methods of the legacy classes such as vectors and properties, several API classes, application codes use this Enumeration interface.

Important Features

  • Enumeration is Synchronized.
  • It does not support adding, removing, or replacing elements.
  • Elements of legacy Collections can be accessed in a forward direction using Enumeration.
  • Legacy classes have methods to work with enumeration and returns Enumeration objects.

Declaration

public interface Enumeration<E>

Where E is the type of elements stored in a Collection.



The sub-interfaces of Enumeration interface is NamingEnumeration and implementing class is StringTokenizer.

Creating Enumeration Object

Vector ve = new Vector();
Enumeration e = v.elements();

Example:

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to test Enumeration
import java.util.Vector;
import java.util.Enumeration;
  
public class EnumerationClass {
  
    public static void main(String args[])
    {
        Enumeration months;
        Vector<String> monthNames = new Vector<>();
  
        monthNames.add("January");
        monthNames.add("Febraury");
        monthNames.add("March");
        monthNames.add("April");
        monthNames.add("May");
        monthNames.add("June");
        monthNames.add("July");
        monthNames.add("August");
        monthNames.add("September");
        monthNames.add("Octobor");
        monthNames.add("November");
        monthNames.add("December");
        months = monthNames.elements();
  
        while (months.hasMoreElements()) {
            System.out.println(months.nextElement());
        }
    }
}

chevron_right


Output

January
Febraury
March
April
May
June
July
August
September
Octobor
November
December

Java Enumeration Interface With SequenceInputStream

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.io.*;
import java.util.*;
class GFG {
    public static void main(String args[])
        throws IOException
    {
        // creating the FileInputStream objects for all the
        // files
        FileInputStream fin
            = new FileInputStream("file1.txt");
        FileInputStream fin2
            = new FileInputStream("file2.txt");
        FileInputStream fin3
            = new FileInputStream("file3.txt");
        FileInputStream fin4
            = new FileInputStream("file4.txt");
        // creating Vector object to all the stream
        Vector v = new Vector();
        v.add(fin);
        v.add(fin2);
        v.add(fin3);
        v.add(fin4);
  
        // creating enumeration object by calling the
        // elements method
        Enumeration e = v.elements();
  
        // passing the enumeration object in the constructor
        SequenceInputStream bin
            = new SequenceInputStream(e);
        int i = 0;
        while ((i = bin.read()) != -1) {
            System.out.print((char)i);
        }
        bin.close();
        fin.close();
        fin2.close();
    }
}

chevron_right


Creation Of Custom Enumeration

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.Enumeration;
import java.lang.reflect.Array;
  
public class EnumerationClass implements Enumeration {
    private int size;
    private int cursor;
    private final Object array;
    public EnumerationClass(Object obj)
    {
        Class type = obj.getClass();
        if (!type.isArray()) {
            throw new IllegalArgumentException(
                "Invald type: " + type);
        }
        size = Array.getLength(obj);
        array = obj;
    }
    public boolean hasMoreElements()
    {
        return (cursor < size);
    }
    public object nextElements()
    {
        return Array.get(array, cursor++);
    }
}

chevron_right


Creation of Java Enumeration using String Array

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

import java.util.*;
import java.io.*;
  
public class EnumerationExample {
    public static void main(String args[])
    {
        // String Array Creation
        String str[] = { "apple", "facebook", "google" };
  
        // Array Enumeration Creation
        ArrayEnumeration aenum = new ArrayEnumeration(str);
  
        // usageof array enumeration
        while (aenum.hasMoreElements()) {
            System.out.println(aenum.nextElement());
        }
    }
}

chevron_right


Methods Of Enumeration Interface

  • E – type of elements

Modifier And Type  

Method              

Explanation

default Iterator<E> asIterator()         This method returns an Iterator which traverses all the remaining elements covered by this enumeration.
boolean hasMoreElements()                              On implementation, it returns the boolean value if there are more elements to extract or not and returns false when all the elements have been enumerated.
E nextElement() This method returns the next element of the enumeration. It throws NoSuchElementException when there are no more elements.

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :