La mise à jour de java carte d'entrée

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

Je suis en utilisant 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 la Map? Ou est-il un moyen de mettre à jour l'entrée de la valeur à la place? Un peu de méthode dans Map comme setValue(String key, int val)?

jrh

  • PS: sa table.entrySet(). J'ai tapé du mal ici.
  • Vous pouvez supprimer la première instruction "if". Il provoque toujours une itération complète par le biais de la carte si la clé n'est pas présente. Si vous l'enlevez, vous serez toujours à itérer sur l'ensemble de la carte et de ne pas exécuter quoi que ce soit si la clé n'est pas présente. Pour l'instant, si la clé est présente, vous itérer sur la carte, trouver qu'il est présent, et puis itérer sur les entrées à nouveau.
InformationsquelleAutor jrharshath | 2009-06-30