Introducci贸n
Contenido
Las tiendas de valores clave son esenciales y se utilizan con frecuencia, especialmente en operaciones que requieren b煤squedas r谩pidas y frecuentes. Permiten que un objeto, la clave, se asigne a otro objeto, el valor. De esta manera, los valores se pueden recuperar f谩cilmente, buscando la clave.
En Java, el m谩s popular Map
la implementaci贸n es la HashMap
clase. Adem谩s del mapeo de valores clave, se usa en c贸digo que requiere inserciones, actualizaciones y b煤squedas m谩s frecuentes. El tiempo de inserci贸n y b煤squeda es una constante O (1).
En este tutorial, veremos c贸mo obtener las claves y los valores de un mapa en Java.
Obtener claves y valores (entradas) del mapa de Java
La mayor铆a de las veces, almacena pares clave-valor porque ambas piezas de informaci贸n son importantes. Por lo tanto, en la mayor铆a de los casos, querr谩 juntar el par clave-valor.
los entrySet()
m茅todo devuelve un conjunto de Map.Entry<K, V>
objetos que residen en el mapa. Puede iterar f谩cilmente sobre este conjunto para obtener las claves y sus valores asociados de un mapa.
Vamos a poblar un HashMap
con algunos valores:
Map<String, Integer> map = new HashMap<>();
map.put("David", 24);
map.put("John", 35);
map.put("Jane", 19);
map.put("Billy", 21);
Ahora, iteremos sobre este mapa, repasando cada Map.Entry<K,V>
en el entrySet()
y extrayendo la clave y el valor de cada una de esas entradas:
for (Map.Entry<String, Integer> pair : map.entrySet()) {
System.out.println(String.format("Key (name) is: %s, Value (age) is : %s", pair.getKey(), pair.getValue()));
}
Esto resulta en:
Key (name) is: Billy, Value (age) is: 21
Key (name) is: David, Value (age) is: 24
Key (name) is: John, Value (age) is: 35
Key (name) is: Jane, Value (age) is: 19
Obtenga claves y valores (entradas) del mapa de Java con forEach ()
Java 8 nos presenta el forEach()
m茅todo para colecciones. Acepta un BiConsumer<? super K, ? super V> action
. los forEach()
el m茅todo realiza lo dado BiConsumer
acci贸n en cada entrada del HashMap
.
Usemos el mismo mapa de antes, pero esta vez, agregue un a帽o a cada una de las edades de las entradas:
map.forEach((key, value) -> System.out.println(key + " : " + value));
Esto imprime:
Billy : 21
David : 24
John : 35
Jane : 19
O, en lugar de consumir cada uno key
y value
del mapa, puede utilizar un Consumer
y consumir entradas enteras del entrySet()
:
map.entrySet()
.forEach((entry) -> System.out.println(entry.getKey() + " : " + entry.getValue()));
Esto tambi茅n resulta en:
Billy : 21
David : 24
John : 35
Jane : 19
Obtener claves de un mapa de Java
Para recuperar solo claves, si realmente no necesita ninguna informaci贸n de los valores, en lugar del conjunto de entradas, puede obtener el conjunto de claves:
for(String key: map.keySet()){
System.out.println(key);
}
Salida:
Billy
David
John
Jane
Obtener valores de un mapa de Java
De manera similar, uno puede desear recuperar e iterar a trav茅s de los valores 煤nicamente, sin las claves. Para esto, podemos usar values()
:
for(String value: map.values()){
System.out.println(value);
}
Salida:
21
54
35
19
Compruebe si el mapa contiene una clave
los HashMap
la clase tiene un containsKey()
m茅todo, que comprueba si la clave pasada existe en el HashMap
, y devuelve un valor booleano que indica la presencia o falta del elemento.
Comprobemos si una llave 5
existe:
boolean result = map.containsKey(5);
System.out.println(result);
Esto imprime:
false
Y para una clave existente:
boolean result = map.containsKey("John");
System.out.println(result);
Esto imprime:
true
Conclusi贸n
En este art铆culo, hemos repasado algunas formas de obtener claves y valores (entradas) de un mapa en Java. Hemos cubierto el uso de un iterador y el repaso de cada Map.Entry<K, V>
, adem谩s de utilizar un forEach()
m茅todo tanto en el mapa como en su conjunto de entradas.
Finalmente, hemos repasado c贸mo obtener el conjunto de claves y los valores por separado, y verificamos si un mapa contiene una clave determinada.