Interfaz de enumeración en Java

La interfaz java.util.Enumeration es una de las interfaces predefinidas, cuyo objeto se utiliza para recuperar los datos de la variable del marco de las colecciones (como Stack , Vector , HashTable , etc.) solo hacia adelante y no hacia atrás. Esta interfaz ha sido reemplazada por un iterador.

La interfaz de enumeración define las funciones mediante las cuales podemos enumerar los elementos en una colección de elementos. Para el código nuevo, la Enumeración se considera obsoleta. Sin embargo, varios métodos de las clases heredadas, como vectores y propiedades, varias clases de API, códigos de aplicación utilizan esta interfaz de enumeración.

Características importantes

  • La enumeración está sincronizada.
  • No admite la adición, eliminación o sustitución de elementos.
  • Se puede acceder a los elementos de las colecciones heredadas en una dirección hacia adelante mediante la enumeración.
  • Las clases heredadas tienen métodos para trabajar con enumeración y devuelven objetos de enumeración.

Declaración

public interface Enumeration<E>

Donde E es el tipo de elementos almacenados en una Colección.

Las subinterfaces de la interfaz de enumeración son NamingEnumeration y la clase de implementación es StringTokenizer .

Crear objeto de enumeración

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

Ejemplo:

Java

// 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("February");
        monthNames.add("March");
        monthNames.add("April");
        monthNames.add("May");
        monthNames.add("June");
        monthNames.add("July");
        monthNames.add("August");
        monthNames.add("September");
        monthNames.add("October");
        monthNames.add("November");
        monthNames.add("December");
        months = monthNames.elements();
 
        while (months.hasMoreElements()) {
            System.out.println(months.nextElement());
        }
    }
}
Producción

January
February
March
April
May
June
July
August
September
October
November
December

Interfaz de enumeración de Java con SequenceInputStream 

Java

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();
    }
}

Creación de enumeración personalizada 

Java

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(
                "Invalid type: " + type);
        }
        size = Array.getLength(obj);
        array = obj;
    }
    public boolean hasMoreElements()
    {
        return (cursor < size);
    }
    public object nextElements()
    {
        return Array.get(array, cursor++);
    }
}

 
Creación de enumeración de Java utilizando String Array 

Java

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());
        }
    }
}

Interfaz de métodos de enumeración

  • E – tipo de elementos

Modificador y tipo  

Método              

Explicación

Iterador predeterminado<E> comoIterador()         Este método devuelve un iterador que atraviesa todos los elementos restantes cubiertos por esta enumeración.
booleano tieneMásElementos()                              En la implementación, devuelve el valor booleano si hay más elementos para extraer o no y devuelve falso cuando se han enumerado todos los elementos.
mi siguienteElemento() Este método devuelve el siguiente elemento de la enumeración. Lanza NoSuchElementException cuando no hay más elementos.

Publicación traducida automáticamente

Artículo escrito por goelshubhangi3118 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *