J'essaie d'implémenter un dictionnaire (comme dans le livre physique). J'ai une liste de mots et leurs significations.
Quelle structure / type de données Java fournit-il pour stocker une liste de mots et leur signification sous forme de paires clé / valeur.
Comment, étant donné une clé, puis-je trouver et retourner la valeur?
java
dictionary
key-value
user1849819
la source
la source
Réponses:
Vous en voudrez un
Map<String, String>
. Les classes qui implémentent l'Map
interface incluent (mais ne sont pas limitées à):HashMap
LinkedHashMap
Hashtable
Chacun est conçu / optimisé pour certaines situations (consultez leurs documents respectifs pour plus d'informations).
HashMap
est probablement le plus courant; le go-to par défaut.Par exemple (en utilisant a
HashMap
):la source
Map
(vérifiez le javadoc)Map<String, String> map = new HashMap<>();
Cela crée un dictionnaire de texte (chaîne):
vous l'utilisez ensuite comme:
Map<String, String> dictionary = new Map<String, String>();
Cela fonctionne correctement.
la source
dictionary["key"]
ne fonctionnera pas - il devrait l'êtredictionary.get("key")
.Utilisez l' interface Map et une implémentation comme HashMap
la source
Il y a un dictionnaire de classe abstraite
http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html
Cependant cela nécessite une implémentation.
Java nous donne une belle implémentation appelée Hashtable
http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html
la source
Dictionary
est obsolète et aucune des implémentations ne l'étend.