Question

Je suis face à un problème qui semble avoir aucune solution straighforward.

J'utilise java.util.Map, et je veux mettre à jour la valeur dans une paire clé-valeur.

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;
        }
    }
}

est-il une méthode pour que je puisse obtenir le nécessaire sans objet Entry avoir à itérer l'ensemble Map? Ou est-il un moyen de mettre à jour la valeur de l'entrée en vigueur? Une méthode dans comme setValue(String key, int val) <=>?

HJR

Était-ce utile?

La solution

Utilisez

table.put(key, val);

pour ajouter une nouvelle paire clé / valeur ou de remplacer une valeur de clé existante.

De l'Javadocs:

  

V put (clé K, la valeur V): Associe la valeur spécifiée à la clé spécifiée sur cette carte (opération facultative). Si la carte précédemment contenait une cartographie de la clé, l'ancienne valeur est remplacée par la valeur spécifiée. (Une carte m est dit contenir un mappage pour une clé k si et seulement si m.containsKey (k) reviendrait vrai).

Autres conseils

Si la clé est présente sera Ecrasez simplement table.put(key, val) la valeur sinon il va créer une nouvelle entrée. Poof! et vous avez terminé. :)

vous pouvez obtenir la valeur d'une carte en utilisant la clé est que est à peu près table.get(key); il

Vous venez d'utiliser le méthode

public Object put(Object key, Object value)

si la clé était déjà présent dans la carte la valeur précédente est renvoyée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top