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.
Te puede interesar:Cree una API REST de Spring Boot con Java – Guía completaObtener 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:
Te puede interesar:Uso de variables / constantes globales en JavaBilly : 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:
Te puede interesar:@Controller y @RestController Anotaciones en Spring BootBilly
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.