Nouveau sur les hashtables avec une question simple. Pour une raison quelconque, googler ne m’a pas apporté une réponse directe. Dis que j'ai un <int,String>
hashtable mis en place:
myHashtable.put(1,"bird");
myHashtable.put(2,"iguana");
et je veux changer "oiseau" en "poisson" (et laisser l'index identique). Puis-je simplement faire un simple put
, ou dois-je supprimer l'entrée ou quoi d'autre?
Oui.
Si un mappage vers la clé spécifiée existe déjà, l'ancienne valeur sera remplacée (et renvoyée). Voir Hashtable.put()
.
Pour un environnement multi-thread, je recommanderais ConcurrentHashMap
ou une autre implémentation ConcurrentMap
. Bien que Hashtable
soit synchronisé, il existe maintenant des implémentations plus sophistiquées disponibles pour le mappage simultané, telles que celles de Guava MapMaker
et CacheBuilder
=.
Gardez également à l’esprit que Map
aura les paramètres de type <Integer, String>
puisque les paramètres de type primitif ne sont pas supportés.
hmmm, juste besoin d'ajouter une lignemyHashtable.put(1,"fish");
pour voir ce qui est incroyable se passe
voir ces liens: http://docs.Oracle.com/javase/6/docs/api/Java/util/Hashtable.html#put (K, V)
Returns:
the previous value of the specified key in this hashtable, or null if it did not have one