Eliminar una entrada usando la clave de HashMap mientras se itera sobre ella

Dado un HashMap y una clave en Java, la tarea es eliminar una entrada de este HashMap usando la clave, mientras se itera sobre ella.

Ejemplos:

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

Input: HashMap: {1=G, 2=e, 3=e, 4=k, 5=s}, key = 3
Output: {1=G, 2=e, 4=k, 5=s}
  • Usando Java 7 y antes:
    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, elimine la entrada de esa iteración del HashMap usando el método remove().
    6. La entrada requerida ha sido eliminada con éxito.

    Programa:

    // Java program to remove an entry using key
    // from a HashMap while iterating over it
      
    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 keyToBeRemoved = 2;
      
            // Print the initial HashMap
            System.out.println("Original HashMap: "
                               + map);
      
            // Get the iterator over the HashMap
            Iterator<Map.Entry<Integer, String> >
                iterator = map.entrySet().iterator();
      
            // 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 (keyToBeRemoved == entry.getKey()) {
      
                    // Remove this entry from HashMap
                    iterator.remove();
                }
            }
      
            // Print the modified HashMap
            System.out.println("Modified HashMap: "
                               + map);
        }
    }
    Producción:

    Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}
    Modified HashMap: {1=Geeks, 3=GeeksForGeeks}
    
  • Usando expresiones lambda de Java 8:
    1. Obtenga el HashMap y la clave
    2. Obtenga el conjunto de entradas de este mapa utilizando el método HashMap.entrySet().
    3. Usando la expresión lambda, elimine la entrada del mapa si la clave es igual a la clave especificada. La clave de entrada del Mapa se puede obtener con la ayuda del método entry.getKey().
    4. La entrada requerida ha sido eliminada con éxito.

    Programa:

    // Java program to remove an entry using key
    // from a HashMap while iterating over it
      
    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 keyToBeRemoved = 2;
      
            // Print the initial HashMap
            System.out.println("Original HashMap: "
                               + map);
      
            // Remove the specified entry from the Map
            map.entrySet()
                .removeIf(
                    entry -> (keyToBeRemoved == entry.getKey()));
      
            // Print the modified HashMap
            System.out.println("Modified HashMap: "
                               + map);
        }
    }
    Producción:

    Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}
    Modified HashMap: {1=Geeks, 3=GeeksForGeeks}
    

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 *