Ich stehe vor einem Problem, das offenbar keine eindeutige Lösung bietet.
Ich verwende Java.util.Map
Und möchte den Wert in einem Schlüssel-Wert-Paar aktualisieren.
Im Moment mache ich das so:
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;
}
}
}
Gibt es also eine Methode, mit der ich das erforderliche Entry
-Objekt abrufen kann, ohne das gesamte Map
durchlaufen 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
Verwenden
table.put(key, val);
um ein neues Schlüssel/Wert-Paar hinzuzufügen oder den Wert eines vorhandenen Schlüssels zu überschreiben.
Aus den Javadocs:
V put (K-Taste, V-Wert): Ordnet den angegebenen Wert dem angegebenen Schlüssel in dieser Zuordnung zu (optionale Operation). Wenn die Zuordnung zuvor eine Zuordnung für den Schlüssel enthielt, wird der alte Wert durch den angegebenen Wert ersetzt. (Eine Zuordnung m soll genau dann eine Zuordnung für einen Schlüssel k enthalten, wenn m.containsKey (k) true zurückgeben würde.)
Wenn die Taste vorhanden ist, überschreibt table.put(key, val)
nur den Wert, ansonsten wird ein neuer Eintrag erstellt. Poof! und du bist fertig. :)
sie können den Wert von einer Karte abrufen, indem Sie die Taste table.get(key);
drücken
Verwenden Sie einfach die Methode
public Object put(Object key, Object value)
wenn der Schlüssel bereits in der Map vorhanden war, wird der vorherige Wert zurückgegeben.