Ich stehe vor einem Problem, das keine geradlinige Lösung zu haben scheint.Aktualisieren eines Java-Map-Eintrags
Ich verwende java.util.Map
, und ich möchte den Wert in einem Schlüssel-Wert-Paar aktualisieren.
Gerade jetzt, ich bin es lik dies zu tun:
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;
}
}
}
So ist es eine Methode, so dass ich die erforderliche Entry
Objekt bekommen kann, ohne durch die gesamte Map
laufen zu müssen? Oder gibt es eine Möglichkeit, den Wert des Eintrags zu aktualisieren? Eine Methode in Map
wie setValue(String key, int val)
?
JRH
PS ist: seine table.entrySet(). Ich habe es falsch eingegeben. – jrharshath
Sie können die erste "if" -Anweisung entfernen. Wenn der Schlüssel nicht vorhanden ist, verursacht es weiterhin eine vollständige Iteration durch die Zuordnung. Wenn Sie es entfernen, durchlaufen Sie immer noch die gesamte Map und führen nichts aus, wenn der Schlüssel nicht vorhanden ist. Gerade jetzt, wenn der Schlüssel vorhanden ist, iterieren Sie durch die Karte, finden Sie, dass sie vorhanden ist, und durchlaufen Sie die Einträge erneut. –