Je suis confronté à un problème qui ne semble pas avoir de solution directe.
J'utilise Java.util.Map
Et je souhaite mettre à jour la valeur d'une paire clé-valeur.
En ce moment, je le fais comme ceci:
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;
}
}
}
Donc, y a-t-il une méthode pour obtenir l'objet Entry
requis sans avoir à parcourir l'ensemble Map
? Ou y a-t-il un moyen de mettre à jour la valeur de l'entrée en place? Une méthode dans Map
comme setValue(String key, int val)
?
jrh
Utilisation
table.put(key, val);
pour ajouter une nouvelle paire clé/valeur ou écraser la valeur d'une clé existante.
Des Javadocs:
V put (clé K, valeur V): associe la valeur spécifiée à la clé spécifiée dans cette mappe (opération facultative). Si la carte contenait précédemment un mappage pour la clé, l'ancienne valeur est remplacée par la valeur spécifiée. (On dit qu'une carte m contient une correspondance pour une clé k si et seulement si m.containsKey (k) renverrait true.)
Si key est présent, table.put(key, val)
écrasera simplement la valeur, sinon il créera une nouvelle entrée. Pouf! et vous avez terminé. :)
vous pouvez obtenir la valeur d'une carte en utilisant la clé est table.get(key);
c'est à peu près tout
Vous venez d'utiliser la méthode
public Object put(Object key, Object value)
si la clé était déjà présente dans la carte, la valeur précédente est renvoyée.