Eliminar una entrada usando el valor de HashMap mientras se itera sobre ella

Dado un HashMap y un valor en Java, la tarea es eliminar una entrada de este HashMap usando el valor, mientras se itera sobre él.

Ejemplos:

Entrada : HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}, valor = “ForGeeks”
Salida : {1=Geeks, 3=GeeksForGeeks}

Entrada : HashMap: {1=G, 2=e, 3=e, 4=k, 5=s}, valor = k
Salida : {1=G, 2=e, 3=e, 5=s}

  • Usando Java 7 y antes:
    1. Obtenga el HashMap y el valor
    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 el valor en esa iteración sea igual al valor especificado. El valor de entrada del Mapa se puede obtener con la ayuda del método entry.getValue().
    5. Si el valor coincide, elimine la entrada de esa iteración del HashMap usando el método remove().
    6. La entrada requerida ha sido eliminada con éxito.

    Sintaxis:

    Iterator> 
        iterator = map.entrySet().iterator();
    
    while (iterator.hasNext()) {
        Map.Entry entry = iterator.next();
        if (valueToBeRemoved.equals(entry.getValue())) {
            iterator.remove();
        }
    }
    

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

    // Java program to remove an entry using value
    // 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 value to be removed
            String valueToBeRemoved = "ForGeeks";
      
            // 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 value is the required value
                if (valueToBeRemoved.equals(entry.getValue())) {
      
                    // 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 el valor
    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 el valor es igual al valor especificado. El valor de entrada del Mapa se puede obtener con la ayuda del método entry.getValue().
    4. La entrada requerida ha sido eliminada con éxito.

    Sintaxis:

    map.entrySet()
       .removeIf(
           entry -> (valueToBeRemoved
                        .equals(entry.getValue())));
    

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

    // Java program to remove an entry using value
    // 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 value to be removed
            String valueToBeRemoved = "ForGeeks";
      
            // Print the initial HashMap
            System.out.println("Original HashMap: "
                               + map);
      
            // Remove the specified entry from the Map
            map.entrySet()
                .removeIf(
                    entry -> (valueToBeRemoved.equals(entry.getValue())));
      
            // 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 *