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