Java: cómo obtener claves y valores de un mapa

     

    Introducción

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *