métodos Hashmap en Java con ejemplos | Conjunto 2 (keySet(), valores(), containsKey()..)

Métodos de clase HashMap en Java con ejemplos | Conjunto 1 (put(), get(), isEmpty() y size())

En esta publicación se discuten más métodos.

  • keySet(): java.util.HashMap.keySet() Devuelve una vista Set de las claves contenidas en este mapa. El conjunto está respaldado por el mapa, por lo que los cambios en el mapa se reflejan en el conjunto y viceversa.
    Syntax:
    public Set keySet()
    Return: a set view of the keys contained in this map
    
  • valores(): java.util.HashMap.values() Devuelve una vista de colección de los valores contenidos en este mapa. La colección está respaldada por el mapa, por lo que los cambios en el mapa se reflejan en la colección y viceversa.
    Syntax:
    public Collection values()
    Return: a collection view of the values contained in 
    this map
    
  • containsKey(): java.util.HashMap.containsKey() Devuelve verdadero si este mapa asigna una o más claves al valor especificado.
    Syntax:
    public boolean containsValue(Object value)
    Parameters:
    value - value whose presence in this map is to be tested
    Return: true if this map maps one or more keys to 
    the specified value
    
  • Implementación:

    // Java program illustrating usage of HashMap class methods
    // keySet(), values(), containsKey()
    import java.util.*;
    public class NewClass
    {
        public static void main(String args[])
        {
            // 1   Creation of HashMap
            HashMap<String, String> Geeks = new HashMap<>();
      
            // 2   Adding values to HashMap as ("keys", "values")
            Geeks.put("Language", "Java");
            Geeks.put("Platform", "Geeks For geeks");
            Geeks.put("Code", "HashMap");
            Geeks.put("Learn", "More");
      
            // 3  containsKey() method is to check the presence
            //    of a particluar key
            // Since 'Code' key present here, the condition is true
            if (Geeks.containsKey("Code"))
                System.out.println("Testing .containsKey : " +
                                               Geeks.get("Code"));
      
            // 4 keySet() method returns all the keys in HashMap
            Set<String> Geekskeys = Geeks.keySet();
            System.out.println("Initial keys  : " + Geekskeys);
      
      
            // 5  values() method return all the values in HashMap
            Collection<String> Geeksvalues = Geeks.values();
            System.out.println("Initial values : " + Geeksvalues);
      
            // Adding new set of key-value
            Geeks.put("Search", "JavaArticle");
      
            // Again using .keySet() and .values() methods
            System.out.println("New Keys : " + Geekskeys);
            System.out.println("New Values: " + Geeksvalues);
        }
    }

    Producción:

Testing .containsKey : HashMap
Initial keys  : [Language, Platform, Learn, Code]
Initial values : [Java, Geeks For geeks, More, HashMap]
New Keys : [Language, Platform, Search, Learn, Code]
New Values: [Java, Geeks For geeks, JavaArticle, More, HashMap]
  • .entrySet() : el método java.util.HashMap.entrySet() devuelve un conjunto completo de claves y valores presentes en HashMap.
    Syntax:
    public Set<Map.Entry> entrySet()
    Return:
    complete set of keys and values
    
  • .getOrDefault: el método java.util.HashMap.getOrDefault() devuelve un valor predeterminado si no se encuentra ningún valor usando la clave que pasamos como argumento en HashMap. Si el valor de la clave ya está presente en HashMap, no le hará nada.
    Es una forma muy agradable de asignar valores a las claves que aún no están mapeadas, sin interferir con el conjunto de claves y valores ya presentes.
    Syntax:
    default V getOrDefault(Object key,V defaultValue)
    Parameters:
    key - the key whose mapped value we need to return
    defaultValue - the default for the keys present in HashMap
    Return:
    mapping the unmapped keys with the default value.
    
  • .replace() : el método java.util.HashMap.replace(key, value) o java.util.HashMap.replace(key, oldvalue, newvalue) es un método de clase java.util.HashMap.
    El primer método acepta un conjunto de clave y valor que reemplazará el valor ya presente de la clave con el nuevo valor pasado en el argumento. Si no existe tal conjunto, el método replace() no hará nada.
    Mientras tanto, el segundo método solo reemplazará el conjunto ya presente de key-old_value si la clave y old_Value se encuentran en HashMap.
    Syntax:
    replace(k key, v value)
              or
    replace(k key, v oldvalue, newvalue)
    Parameters:
    key      - key in set with the old value.
    value    - new value we want to be with the specified key
    oldvalue - old value in set with the specified key
    newvalue - new value we want to be with the specified key
    Return:
    True - if the value is replaced
    Null - if there is no such set present
    
  • El método .putIfAbsent java.util.HashMap.putIfAbsent(clave, valor) se utiliza para insertar un nuevo conjunto de clave-valor en HashMap si el conjunto respectivo está presente. Se devuelve un valor nulo si dicho conjunto de clave-valor ya está presente en HashMap.
    Syntax:
    public V putIfAbsent(key, value)
    Parameters:
    key      - key with which the specified value is associates.
    value    - value to associates with the specified key.
    
  • // Java Program illustrating HashMap class methods(). 
    // entrySet(), getOrDefault(), replace(), putIfAbsent
    import java.util.*;
    public class NewClass
    {
        public static void main(String args[])
        {
            // Creation of HashMap
            HashMap<String, String> Geeks = new HashMap<>();
      
            // Adding values to HashMap as ("keys", "values")
            Geeks.put("Language", "Java");
            Geeks.put("Code", "HashMap");
            Geeks.put("Learn", "More");
      
            // .entrySet() returns all the keys with their values present in Hashmap
            Set<Map.Entry<String, String>> mappingGeeks = Geeks.entrySet();
            System.out.println("Set of Keys and Values using entrySet() : "+mappingGeeks);
            System.out.println();
      
            // Using .getOrDefault to access value
            // Here it is Showing Default value as key - "Code" was already present
            System.out.println("Using .getorDefault : " 
                                        + Geeks.getOrDefault("Code","javaArticle"));
      
            // Here it is Showing set value as key - "Search" was not present
            System.out.println("Using .getorDefault : "
                                        + Geeks.getOrDefault("Search","javaArticle"));
            System.out.println();
      
            // .replace() method replacing value of key "Learn"
            Geeks.replace("Learn", "Methods");
            System.out.println("working of .replace()     : "+mappingGeeks);
            System.out.println();
      
            /* .putIfAbsent() method is placing a new key-value
                as they were not present initially*/
            Geeks.putIfAbsent("cool", "HashMap methods");
            System.out.println("working of .putIfAbsent() : "+mappingGeeks);
      
            /* .putIfAbsent() method is not doing anything
                as key-value were already present */
            Geeks.putIfAbsent("Code", "With_JAVA");
            System.out.println("working of .putIfAbsent() : "+mappingGeeks);
      
        }
    }
    

    Producción:

    Set of Keys and Values using entrySet() : [Language=Java, Learn=More, Code=HashMap]
    
    Using .getorDefault : HashMap
    Using .getorDefault : javaArticle
    
    working of .replace()     : [Language=Java, Learn=Methods, Code=HashMap]
    
    working of .putIfAbsent() : [Language=Java, cool=HashMap methods, Learn=Methods, Code=HashMap]
    working of .putIfAbsent() : [Language=Java, cool=HashMap methods, Learn=Methods, Code=HashMap]
    
  • eliminar (clave de objeto): elimina la asignación de esta clave de este mapa, si está presente.
  • // Java Program illustrating remove() method using Iterator.
      
    import java.util.*;
    public class NewClass
    {
        public static void main(String args[])
        {
            //  Creation of HashMap
            HashMap<String, String> Geeks = new HashMap<>();
      
            //  Adding values to HashMap as ("keys", "values")
            Geeks.put("Language", "Java");
            Geeks.put("Platform", "Geeks For geeks");
            Geeks.put("Code", "HashMap");
      
      
            //  .entrySet() returns all the keys with their values present in Hashmap
            Set<Map.Entry<String, String>> mappingGeeks = Geeks.entrySet();
            System.out.println("Set of Keys and Values : "+mappingGeeks);
            System.out.println();
      
            //  Creating an iterator
            System.out.println("Use of Iterator to remove the sets.");
            Iterator<Map.Entry<String, String>> geeks_iterator = Geeks.entrySet().iterator();
            while(geeks_iterator.hasNext())
            {
                Map.Entry<String, String> entry = geeks_iterator.next();
                //  Removing a set one by one using iterator
                geeks_iterator.remove(); // right way to remove entries from Map,
                // avoids ConcurrentModificationException
                System.out.println("Set of Keys and Values : "+mappingGeeks);
      
            }
        }
    }
    

    Producción:

    Set of Keys and Values : [Language=Java, Platform=Geeks For geeks, Code=HashMap]
    
    Use of Iterator to remove the sets.
    Set of Keys and Values : [Platform=Geeks For geeks, Code=HashMap]
    Set of Keys and Values : [Code=HashMap]
    Set of Keys and Values : []
    

    Ventaja:
    si usamos for loop, se traduce a Iterator internamente pero sin usar Iterator explícitamente no podemos eliminar ninguna entrada durante la iteración. Al hacerlo, Iterator puede lanzar ConcurrentModificationException. Entonces, usamos iterador explícito y bucle while para atravesar.

    Referencia:
    https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html

    Este artículo es una contribución de Mohit Gupta . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

    Publicación traducida automáticamente

    Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

    Deja una respuesta

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