Je suis confronté à un problème qui semble ne pas avoir de solution directe. J'utilise java.util.Map
, et je veux mettre à jour la valeur dans une paire valeur-clé.Mise à jour d'une entrée de carte Java
En ce moment, je fais lik 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;
}
}
}
Ainsi est-il une méthode pour que je puisse obtenir l'objet Entry
nécessaire sans avoir à parcourir l'ensemble Map
? Ou existe-t-il un moyen de mettre à jour la valeur de l'entrée? Une méthode dans Map
comme setValue(String key, int val)
?
HJR
PS: son table.entrySet(). Je l'ai tapé mal ici. – jrharshath
Vous pouvez supprimer la première instruction "if". Il provoque toujours une itération complète à travers la carte si la clé n'est pas présente. Si vous le supprimez, vous continuerez à parcourir toute la carte sans exécuter quoi que ce soit si la clé n'est pas présente. En ce moment, si la clé est présente, vous parcourez la carte, trouvez qu'elle est présente, puis parcourez à nouveau les entrées. –