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:
- Obtenga el HashMap y el valor
- Cree un iterador para iterar sobre HashMap utilizando el método HashMap.iterate().
- Iterar sobre HashMap utilizando el método Iterator.hasNext().
- 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().
- Si el valor coincide, elimine la entrada de esa iteración del HashMap usando el método remove().
- 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:
- Obtenga el HashMap y el valor
- Obtenga el conjunto de entradas de este mapa utilizando el método HashMap.entrySet().
- 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().
- 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