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.
Vous devez vous connecter pour publier un commentaire.
Utilisation
pour ajouter une nouvelle paire clé/valeur ou remplacer une clé existante de valeur.
De la Javadoc:
Si la clé est présente
table.put(key, val)
écraserait la valeur d'autre, il va créer une nouvelle entrée. Pouf! et vous avez terminé. 🙂vous pouvez obtenir la valeur d'une carte à l'aide de la clé est
table.get(key);
c'est à ce sujetVous suffit d'utiliser le méthode
si la clé était déjà présent dans la Carte, alors la valeur précédente est retourné.