Cómo verificar si existe una clave en un HashMap en Java

Dado un HashMap y una clave en Java, la tarea es verificar si esta clave existe en el HashMap o no.

Ejemplos:

Input: HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}, key = 2
Output: true

Input: HashMap: {1=G, 2=e, 3=e, 4=k, 5=s}, key = 10
Output: false
  1. Usando iterador (no eficiente) :
    1. Obtenga el HashMap y la clave
    2. Cree un iterador para iterar sobre HashMap utilizando el método HashMap.iterate().
    3. Iterar sobre HashMap utilizando el método Iterator.hasNext().
    4. Mientras itera, verifique que la clave en esa iteración sea igual a la clave especificada. La clave de entrada del Mapa se puede obtener con la ayuda del método entry.getKey().
    5. Si la clave coincide, establezca el indicador como verdadero.
    6. El valor de la bandera después de la iteración contiene el resultado.

    A continuación se muestra la implementación del enfoque anterior:

    Programa 1:

    // Java program to check if a key exists
    // in a HashMap or not
      
    import java.util.*;
      
    public class GFG {
        public static void main(String[] args)
        {
      
            // Create a HashMap
            HashMap<Integer, String>
                map = new HashMap<>();
      
            // Populate the HashMap
            map.put(1, "Geeks");
            map.put(2, "ForGeeks");
            map.put(3, "GeeksForGeeks");
      
            // Get the key to be removed
            int keyToBeChecked = 2;
      
            // Print the initial HashMap
            System.out.println("HashMap: "
                               + map);
      
            // Get the iterator over the HashMap
            Iterator<Map.Entry<Integer, String> >
                iterator = map.entrySet().iterator();
      
            // flag to store result
            boolean isKeyPresent = false;
      
            // Iterate over the HashMap
            while (iterator.hasNext()) {
      
                // Get the entry at this iteration
                Map.Entry<Integer, String>
                    entry
                    = iterator.next();
      
                // Check if this key is the required key
                if (keyToBeChecked == entry.getKey()) {
      
                    isKeyPresent = true;
                }
            }
      
            // Print the result
            System.out.println("Does key "
                               + keyToBeChecked
                               + " exists: "
                               + isKeyPresent);
        }
    }
    Producción:

    HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}
    Does key 2 exists: true
    

    Programa 2: Para mostrar por qué no se sugiere este método. Si HashMap contiene valores nulos, este método generará NullPointerException. Esto hace que este método sea un método no sugerible para usar.

    // Java program to check if a key exists
    // in a HashMap or not
      
    import java.util.*;
      
    public class GFG {
        public static void main(String[] args)
        {
      
            try {
                // Create a HashMap
                HashMap<Integer, String>
                    map = new HashMap<>();
      
                // Populate the HashMap
                map.put(1, "Geeks");
                map.put(2, "ForGeeks");
                map.put(null, "GeeksForGeeks");
      
                // Get the key to be removed
                int keyToBeChecked = 2;
      
                // Print the initial HashMap
                System.out.println("HashMap: "
                                   + map);
      
                // Get the iterator over the HashMap
                Iterator<Map.Entry<Integer, String> >
                    iterator = map.entrySet().iterator();
      
                // flag to store result
                boolean isKeyPresent = false;
      
                // Iterate over the HashMap
                while (iterator.hasNext()) {
      
                    // Get the entry at this iteration
                    Map.Entry<Integer, String>
                        entry
                        = iterator.next();
      
                    // Check if this key is the required key
                    if (keyToBeChecked == entry.getKey()) {
      
                        isKeyPresent = true;
                    }
                }
      
                // Print the result
                System.out.println("Does key "
                                   + keyToBeChecked
                                   + " exists: "
                                   + isKeyPresent);
            }
            catch (Exception e) {
                System.out.println(e);
            }
        }
    }
    Producción:

    HashMap: {null=GeeksForGeeks, 1=Geeks, 2=ForGeeks}
    java.lang.NullPointerException
    
  2. Usando el método HashMap.containsKey (eficiente) :
    1. Obtenga el HashMap y la clave
    2. Compruebe si la clave existe en HashMap o no utilizando el método HashMap.containsKey(). Si la clave existe, establezca el indicador como verdadero.
    3. El valor de la bandera contiene el resultado.

    A continuación se muestra la implementación del enfoque anterior:

    Programa 1:

    // Java program to check if a key exists
    // in a HashMap or not
      
    import java.util.*;
      
    public class GFG {
        public static void main(String[] args)
        {
      
            // Create a HashMap
            HashMap<Integer, String>
                map = new HashMap<>();
      
            // Populate the HashMap
            map.put(1, "Geeks");
            map.put(2, "ForGeeks");
            map.put(null, "GeeksForGeeks");
      
            // Get the key to be removed
            int keyToBeChecked = 2;
      
            // Print the initial HashMap
            System.out.println("HashMap: "
                               + map);
      
            // Check is key exists in the Map
            boolean isKeyPresent = map.containsKey(keyToBeChecked);
      
            // Print the result
            System.out.println("Does key "
                               + keyToBeChecked
                               + " exists: "
                               + isKeyPresent);
        }
    }
    Producción:

    HashMap: {null=GeeksForGeeks, 1=Geeks, 2=ForGeeks}
    Does key 2 exists: true
    

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu 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 *