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 *