74 votes

Mise à jour d'une entrée de carte Java

Je suis face à un problème qui ne semble pas avoir compliqué la solution.

Je suis à l'aide d' java.util.Map, et je veux mettre à jour la valeur dans une paire Clé-Valeur.

Maintenant, je suis en train de faire 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;
        }
    }
}

Si il ya une méthode pour que je puisse obtenir l' Entry des objets sans avoir à parcourir l'ensemble de l' Map? Ou est-il un moyen de mettre à jour l'entrée de la valeur à la place? Un peu de méthode, en Map comme setValue(String key, int val)?

jrh

159voto

skaffman Points 197885

Quel est le problème avec juste

 table.put(key, val);
 

?

13voto

Priyank Points 4753

Si key est présent, table.put (key, val) écrasera simplement la valeur et créera une nouvelle entrée. Pouf! et vous avez terminé. :)

vous pouvez obtenir la valeur d'une carte en utilisant key is table.get (key); C'est à peu près ça

6voto

mkoeller Points 3101

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X