Comment mettre à jour une valeur dans une carte, si il existe d'autre de l'insérer
J'ai fait une recherche et a été étonné de voir cela n'avait pas été demandé avant (au moins, je ne pouvais pas le trouver).
J'ai une carte comme ceci:
Map<String, String> myMap
Je sais que je peux vérifier si une clé existe dans la carte à l'aidecontainsKey(Object key);
et je peut remplacer une valeur à l'aide replace(String key, String value);
et, naturellement, de mettre une valeur à l'aide de put(String key, String value);
Maintenant, si je veux vérifier une valeur si elle existe un jour, le reste de l'insérer, je dois utiliser une condition:
if(myMap.containsKey(key)) {
myMap.replace(key, value);
} else {
myMap.put(key, value);
}
Est-il une meilleure manière de faire ceci? Personnellement, je pense que la condition est un peu inutile et de compliquer à l'excès de quelque chose qui pourrait être une ligne plutôt que de les cinq!
OriginalL'auteur Crazy Dino | 2015-08-07
Vous devez vous connecter pour publier un commentaire.
Le remplacement sera effectué par
put()
:À partir de la documentation de HashMap
Donc, vous ne devez
OriginalL'auteur Jens
Supprimer tout le code et en dessous de la ligne est assez.
Que déjà les vérifications et les remplace si une valeur existe déjà.
OriginalL'auteur Suresh Atta
Vous pouvez simplement utiliser le
#put()
méthode, il remplacera l'actuel article si il y en a un. Par la voieAbstractMap
(la super-classe deHashMap
) met en œuvre#replace()
de cette façon:Dans votre cas, vous n'avez pas besoin de contrôles supplémentaires de cette méthode.
OriginalL'auteur meskobalazs