Java : EnumMap con ejemplos

EnumMap (Java SE 23 & JDK 23) en Java con ejemplos.
Encontrará muestras de código para la mayoría de los métodos EnumMap<K extends Enum<K>,V>.

Nota :


Summary

Una implementación de mapa especializada para usar con claves de tipo de enumeración. Todas las claves de un mapa de enumeración deben provenir de un único tipo de enumeración que se especifica, explícita o implícitamente, cuando se crea el mapa. Los mapas de enumeración se representan internamente como matrices. Esta representación es extremadamente compacta y eficiente. (Traducción automática)

Class diagram

final var map = new EnumMap<DayOfWeek, String>(DayOfWeek.class);
System.out.println(map); // {}

map.put(DayOfWeek.MONDAY, "aaa");
map.put(DayOfWeek.TUESDAY, "bbb");
map.put(DayOfWeek.WEDNESDAY, "ccc");

System.out.println(map); // {MONDAY=aaa, TUESDAY=bbb, WEDNESDAY=ccc}

System.out.println(map.get(DayOfWeek.MONDAY)); // aaa
System.out.println(map.get(DayOfWeek.TUESDAY)); // bbb
System.out.println(map.get(DayOfWeek.WEDNESDAY)); // ccc
System.out.println(map.get(DayOfWeek.THURSDAY)); // null

map.remove(DayOfWeek.MONDAY);
System.out.println(map); // {TUESDAY=bbb, WEDNESDAY=ccc}

Constructors

EnumMap (Class<K> keyType)

Crea un mapa de enumeración vacío con el tipo de clave especificado. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);
System.out.println(map); // {}
System.out.println(map.isEmpty()); // true

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}
System.out.println(map.size()); // 3

EnumMap (EnumMap<K,? extends V> m)

Crea un mapa de enumeración con el mismo tipo de clave que el mapa de enumeración especificado, que inicialmente contiene las mismas asignaciones (si las hay). (Traducción automática)

final var m = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);
m.put(DayOfWeek.MONDAY, 10);
m.put(DayOfWeek.TUESDAY, 20);
m.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(m); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}
System.out.println(m.size()); // 3

final var map = new EnumMap<>(m);
System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}
System.out.println(map.size()); // 3

EnumMap (Map<K,? extends V> m)

Crea un mapa de enumeración inicializado a partir del mapa especificado. (Traducción automática)

final var m = new HashMap<DayOfWeek, Integer>();
m.put(DayOfWeek.MONDAY, 10);
m.put(DayOfWeek.TUESDAY, 20);
m.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(m); // {WEDNESDAY=30, TUESDAY=20, MONDAY=10}
System.out.println(m.size()); // 3

final var map = new EnumMap<>(m);
System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}
System.out.println(map.size()); // 3

Methods

void clear ()

Elimina todas las asignaciones de este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}
System.out.println(map.size()); // 3

map.clear();
System.out.println(map); // {}
System.out.println(map.size()); // 0

EnumMap<K,V> clone ()

Devuelve una copia superficial de este mapa de enumeración. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}

final var cloned = map.clone();
System.out.println(cloned); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}
System.out.println(cloned.getClass()); // class java.util.EnumMap

boolean containsKey (Object key)

Devuelve verdadero si este mapa contiene una asignación para la clave especificada. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}

System.out.println(map.containsKey(DayOfWeek.MONDAY)); // true
System.out.println(map.containsKey(DayOfWeek.TUESDAY)); // true
System.out.println(map.containsKey(DayOfWeek.WEDNESDAY)); // true
System.out.println(map.containsKey(DayOfWeek.SUNDAY)); // false

boolean containsValue (Object value)

Devuelve verdadero si este mapa asigna una o más claves al valor especificado. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);
map.put(DayOfWeek.THURSDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30, THURSDAY=30}

System.out.println(map.containsValue(0)); // false
System.out.println(map.containsValue(10)); // true
System.out.println(map.containsValue(20)); // true
System.out.println(map.containsValue(30)); // true
System.out.println(map.containsValue(40)); // false

Set<Map.Entry<K,V>> entrySet ()

Devuelve una vista de conjunto de las asignaciones contenidas en este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 1);
map.put(DayOfWeek.TUESDAY, 2);
map.put(DayOfWeek.WEDNESDAY, 3);

System.out.println(map); // {MONDAY=1, TUESDAY=2, WEDNESDAY=3}

final var entries = map.entrySet();
System.out.println(entries); // [MONDAY=1, TUESDAY=2, WEDNESDAY=3]

map.replace(DayOfWeek.TUESDAY, 20);
System.out.println(map); // {MONDAY=1, TUESDAY=20, WEDNESDAY=3}
System.out.println(entries); // [MONDAY=1, TUESDAY=20, WEDNESDAY=3]

entries.remove(Map.entry(DayOfWeek.MONDAY, 1));
System.out.println(map); // {TUESDAY=20, WEDNESDAY=3}
System.out.println(entries); // [TUESDAY=20, WEDNESDAY=3]

for (final var entry : entries) {
    entry.setValue(entry.getValue() * 10);
}

System.out.println(map); // {TUESDAY=200, WEDNESDAY=30}
System.out.println(entries); // [TUESDAY=200, WEDNESDAY=30]

boolean equals (Object o)

Compara el objeto especificado con este mapa para verificar la igualdad. (Traducción automática)

final var map1 = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map1.put(DayOfWeek.MONDAY, 1);
map1.put(DayOfWeek.TUESDAY, 2);

final var map2 = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map2.put(DayOfWeek.MONDAY, 1);
map2.put(DayOfWeek.TUESDAY, 2);

final var map3 = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map3.put(DayOfWeek.MONDAY, 10);
map3.put(DayOfWeek.TUESDAY, 20);

final var map4 = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map4.put(DayOfWeek.FRIDAY, 1);
map4.put(DayOfWeek.SATURDAY, 2);

System.out.println(map1); // {MONDAY=1, TUESDAY=2}
System.out.println(map2); // {MONDAY=1, TUESDAY=2}
System.out.println(map3); // {MONDAY=10, TUESDAY=20}
System.out.println(map4); // {FRIDAY=1, SATURDAY=2}

System.out.println(map1.equals(map2)); // true
System.out.println(map1.equals(map3)); // false
System.out.println(map1.equals(map4)); // false

V get (Object key)

Devuelve el valor al que está asignada la clave especificada, o nulo si este mapa no contiene ninguna asignación para la clave. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}

System.out.println(map.get(DayOfWeek.MONDAY)); // 10
System.out.println(map.get(DayOfWeek.TUESDAY)); // 20
System.out.println(map.get(DayOfWeek.WEDNESDAY)); // 30
System.out.println(map.get(DayOfWeek.THURSDAY)); // null

int hashCode ()

Devuelve el valor del código hash para este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);
map.put(DayOfWeek.MONDAY, 1);
map.put(DayOfWeek.TUESDAY, 2);

System.out.println(map); // {MONDAY=1, TUESDAY=2}
System.out.println(map.hashCode()); // 2075746216
final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);

System.out.println(map); // {MONDAY=10, TUESDAY=20}
System.out.println(map.hashCode()); // 2075746219
final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.FRIDAY, 1);
map.put(DayOfWeek.SATURDAY, 2);

System.out.println(map); // {FRIDAY=1, SATURDAY=2}
System.out.println(map.hashCode()); // -1797384182

Set<K> keySet ()

Devuelve una vista de conjunto de las claves contenidas en este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}

final var keys = map.keySet();
System.out.println(keys); // [MONDAY, TUESDAY, WEDNESDAY]

map.put(DayOfWeek.THURSDAY, 40);
System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30, THURSDAY=40}
System.out.println(keys); // [MONDAY, TUESDAY, WEDNESDAY, THURSDAY]

keys.remove(DayOfWeek.MONDAY);
System.out.println(map); // {TUESDAY=20, WEDNESDAY=30, THURSDAY=40}
System.out.println(keys); // [TUESDAY, WEDNESDAY, THURSDAY]

V put (K key, V value)

Asocia el valor especificado con la clave especificada en este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);
System.out.println(map); // {}

System.out.println(map.put(DayOfWeek.MONDAY, 10)); // null
System.out.println(map); // {MONDAY=10}

System.out.println(map.put(DayOfWeek.TUESDAY, 20)); // null
System.out.println(map); // {MONDAY=10, TUESDAY=20}

System.out.println(map.put(DayOfWeek.WEDNESDAY, 30)); // null
System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}

System.out.println(map.put(DayOfWeek.MONDAY, 999)); // 10
System.out.println(map); // {MONDAY=999, TUESDAY=20, WEDNESDAY=30}

void putAll (Map<? extends K,? extends V> m)

Copia todas las asignaciones del mapa especificado a este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);
System.out.println(map); // {}

map.putAll(Map.of());
System.out.println(map); // {}

final var m1 = Map.of(DayOfWeek.MONDAY, 10);
map.putAll(m1);
System.out.println(map); // {MONDAY=10}

final var m2 = Map.of(DayOfWeek.TUESDAY, 20, DayOfWeek.WEDNESDAY, 30);
map.putAll(m2);
System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}

final var m3 = Map.of(DayOfWeek.MONDAY, 910, DayOfWeek.TUESDAY, 920);
map.putAll(m3);
System.out.println(map);  // {MONDAY=910, TUESDAY=920, WEDNESDAY=30}

V remove (Object key)

Elimina la asignación de esta clave de este mapa si está presente. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 10);
map.put(DayOfWeek.TUESDAY, 20);
map.put(DayOfWeek.WEDNESDAY, 30);

System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}

System.out.println(map.remove(DayOfWeek.TUESDAY)); // 20
System.out.println(map); // {MONDAY=10, WEDNESDAY=30}

System.out.println(map.remove(DayOfWeek.SUNDAY)); // null
System.out.println(map); // {MONDAY=10, WEDNESDAY=30}

int size ()

Devuelve el número de asignaciones clave-valor en este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

System.out.println(map); // {}
System.out.println(map.size()); // 0

map.put(DayOfWeek.MONDAY, 10);
System.out.println(map); // {MONDAY=10}
System.out.println(map.size()); // 1

map.put(DayOfWeek.TUESDAY, 20);
System.out.println(map); // {MONDAY=10, TUESDAY=20}
System.out.println(map.size()); // 2

map.put(DayOfWeek.WEDNESDAY, 30);
System.out.println(map); // {MONDAY=10, TUESDAY=20, WEDNESDAY=30}
System.out.println(map.size()); // 3

Collection<V> values ()

Devuelve una vista de colección de los valores contenidos en este mapa. (Traducción automática)

final var map = new EnumMap<DayOfWeek, Integer>(DayOfWeek.class);

map.put(DayOfWeek.MONDAY, 1);
map.put(DayOfWeek.TUESDAY, 2);
map.put(DayOfWeek.WEDNESDAY, 3);

System.out.println(map); // {MONDAY=1, TUESDAY=2, WEDNESDAY=3}

final var values = map.values();
System.out.println(values); // [1, 2, 3]

map.replace(DayOfWeek.TUESDAY, 20);
System.out.println(map); // {MONDAY=1, TUESDAY=20, WEDNESDAY=3}
System.out.println(values); // [1, 20, 3]

values.remove(1);
System.out.println(map); // {TUESDAY=20, WEDNESDAY=3}
System.out.println(values); // [20, 3]

Methods declared in AbstractMap

isEmpty, toString

Consulte el siguiente enlace.

Methods declared in Map

compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll

Consulte el siguiente enlace.


Related posts

To top of page