Programa Java para implementar la API de EnumMap

EnumMap es una implementación de mapa que tiene valores de enumeración como claves. Ahora, todos ustedes pueden preguntarse qué es enum, ¿verdad? Bueno, enum es un tipo de datos definido por el usuario que generalmente se usa cuando ya se conocen todos los valores posibles. 

En este artículo, implementaremos la API de EnumMap en un programa Java. Pero primero, aprenderemos algunos de los conceptos que se han utilizado en el programa y luego nos sumergiremos directamente en el programa.

La API EnumMap pertenece al paquete java.util . Para implementar la API de EnumMap, se utilizará una clase especial, que se define a continuación.

EnumMapImpl<K extends Enum<K>, V> class

Esta clase representa el uso de la API de EnumMap para tipos de datos enumerados o enumerados. K representa una entrada de tipo clave y V representa una entrada de tipo de valor en el mapa.

Ejemplo 1:

Consideremos un EnumMap con tallas de ropa como claves. 

enum Dress_sizes
    {
        extra-small, small, medium, large, extra-large;
    }

Ahora, por ejemplo, implementamos una función básica de la API de EnumMap, nos gustaría saber si un tamaño de vestido en particular está disponible o no, para esto, usaríamos la función. enumMap.containsKey( ) , que devolvería verdadero si el tamaño está presente; de ​​lo contrario, devolvería falso.

Declaración: 

enumMap.containsKey(Dress_sizes.extra-large);
Input: extra-large
Output: true

Input: extra-extra-large
Output: false

Como el tamaño extra grande estaba presente en el Mapa, devolvió verdadero y como el tamaño extra extra grande no estaba presente, devolvió falso.

Ejemplo 2:

Tomemos otro ejemplo, implementando otra característica básica del Mapa, por ejemplo, queremos vaciar el EnumMap anterior. Para esto, simplemente usaremos la función enumMap.clear() que borraría EnumMap.

Declaración: 

enumMap.clear();
Output: The enumMap is now empty.       
        enum Dress_sizes
        { 
                   
        }

Enfoque utilizado para la implementación:

  • Se ha definido una clase EnumMap y los valores de enumeración y los conjuntos de claves están predefinidos.
  • En la función principal, los valores se han emparejado con sus conjuntos de teclas individuales.
  • Las funciones básicas de enumMap se utilizan luego para realizar varias tareas.

Implementación:

Java

// Java program to implement enum Map API
  
import java.lang.*;
import java.util.Collection;
import java.util.EnumMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
  
public class EnumMapImpl<K extends Enum<K>, V> {
    EnumMap<K, V> enumMap;
  
    // For creating an empty enum map with the specified key
    // type.
    public EnumMapImpl(Class<K> keyType)
    {
        enumMap = new EnumMap<K, V>(keyType);
    }
  
    // For creating an enum map which will have the same key
    // type as the specified enum map,
  
    public EnumMapImpl(EnumMap<K, ? extends V> m)
    {
        enumMap = new EnumMap<K, V>(m);
    }
  
    // For Creating an enum map that is initialized from the
    // specified map.
    public EnumMapImpl(Map<K, ? extends V> m)
    {
        enumMap = new EnumMap<K, V>(m);
    }
  
    // Clears the Mappings from the enumMap.
    public void clear() { enumMap.clear(); }
    
    // Returns true if the specified value is found.
    public boolean containsValue(Object value)
    {
        return enumMap.containsValue(value);
    }
  
    // Returns true if the specified key is found.
    public boolean containsKey(Object key)
    {
        return enumMap.containsKey(key);
    }
  
    // Returns the key set of the enumMap
    public Set<K> keySet() { return enumMap.keySet(); }
  
    // Returns the entry set( values + keys) of the enumMap.
    public Set<Map.Entry<K, V> > entrySet()
    {
        return enumMap.entrySet();
    }
  
    // Returns the value to which a specified key is mapped,
    // else returns null if the specified key is not found.
  
    public V get(Object key) { return enumMap.get(key); }
  
    // Associates the specified Key and Value.
    public V put(K key, V value)
    {
        return enumMap.put(key, value);
    }
  
    // Copies the mappings of another map to the specified
    // map.
    public void putAll(Map<? extends K, ? extends V> map)
    {
        enumMap.putAll(map);
    }
  
    // Returns the size of the enumMap.
    public int size() { return enumMap.size(); }
  
    // Returns the values mapped in the specified enumMap.
    public Collection<V> values()
    {
        return enumMap.values();
    }
  
    // Returns true if the enumMap is empty.
    public boolean isEmpty() { return enumMap.isEmpty(); }
    
    // Initializing the enumMap.
    enum Week_Days {
        SUNDAY,
        MONDAY,
        TUESDAY,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY;
    }
  
    // Main function.
    public static void main(String[] args)
    {
  
        EnumMapImpl<Week_Days, Integer> enumMap
            = new EnumMapImpl<Week_Days, Integer>(Week_Days.class);
        
        enumMap.put(Week_Days.SUNDAY, 1);
        enumMap.put(Week_Days.MONDAY, 2);
        enumMap.put(Week_Days.TUESDAY, 3);
        enumMap.put(Week_Days.WEDNESDAY, 4);
        enumMap.put(Week_Days.THURSDAY, 5);
        enumMap.put(Week_Days.FRIDAY, 6);
        enumMap.put(Week_Days.SATURDAY, 7);
  
        System.out.println("The size of the enumMap is: "
                           + enumMap.size());
        
        System.out.println();
  
        System.out.println("The values of the enumMap is: ");
        
        Collection<Integer> ci = enumMap.values();
        
        Iterator<Integer> iin1 = ci.iterator();
        
        while (iin1.hasNext()) 
        {
            System.out.print(iin1.next() + "\t");
        }
        
        System.out.println();
        System.out.println();
  
        System.out.println("The key set of the enumMap is: ");
        
        Set<Week_Days> ws = enumMap.keySet();
        
        Iterator<Week_Days> iin2 = ws.iterator();
        
        while (iin2.hasNext()) 
        {
            System.out.print(iin2.next() + "  ");
        }
        
        System.out.println();
        System.out.println();
        
        System.out.println("The enumMap is: ");
        
        Iterator<Entry<Week_Days, Integer> > week_iterator;
        
        Set<Entry<Week_Days, Integer> > wi = enumMap.entrySet();
        week_iterator = wi.iterator();
        
        while (week_iterator.hasNext()) 
        {
            System.out.println(week_iterator.next() + "\t");
        }
        
        System.out.println();
        System.out.println("The enumMap contains Key SUNDAY "
            + ": " + enumMap.containsKey(Week_Days.SUNDAY));
        
        System.out.println("The enumMap contains Value 1 "
                           + ": "
                           + enumMap.containsValue(1));
        
        enumMap.clear();
        
        if (enumMap.isEmpty())
            System.out.println("The EnumMap is now empty.");
        else
            System.out.println("The EnumMap is not empty.");
    }
}
Producción

The size of the enumMap is: 7

The values of the enumMap is: 
1    2    3    4    5    6    7    

The key set of the enumMap is: 
SUNDAY  MONDAY  TUESDAY  WEDNESDAY  THURSDAY  FRIDAY  SATURDAY  

The enumMap is: 
SUNDAY=1    
MONDAY=2    
TUESDAY=3    
WEDNESDAY=4    
THURSDAY=5    
FRIDAY=6    
SATURDAY=7    

The enumMap contains Key SUNDAY : true
The enumMap contains Value 1 : true
The EnumMap is now empty.

Publicación traducida automáticamente

Artículo escrito por debjani1413 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 *