Me enfrenta un problema que parece no tener una solución directa.Actualizar una entrada de mapa java
Estoy usando java.util.Map
, y quiero actualizar el valor en un par de clave-valor.
En este momento, lo estoy haciendo este lik:
private Map<String,int> table = new HashMap<String,int>();
public void update(String key, int val) {
if(!table.containsKey(key)) return;
Entry<String,int> entry;
for(entry : table.entrySet()) {
if(entry.getKey().equals(key)) {
entry.setValue(val);
break;
}
}
}
Entonces, ¿hay algún método para que pueda obtener el Entry
objeto deseado sin tener que recorrer todo el Map
? ¿O hay alguna forma de actualizar el valor de la entrada en su lugar? Algún método en Map
como setValue(String key, int val)
?
JRH
PD: su table.entrySet(). Lo escribí mal aquí. – jrharshath
Puede eliminar la primera instrucción "if". Todavía causa una iteración completa a través del mapa si la clave no está presente. Si lo elimina, seguirá iterando por todo el mapa y no ejecutará nada si la clave no está presente. En este momento, si la clave está presente, recorre el mapa, encuentra que está presente y luego repite las entradas nuevamente. –