web-dev-qa-db-fra.com

Comment créez-vous un dictionnaire en Java?

J'essaye 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 permet-il de stocker une liste de mots et leur signification sous forme de paires clé/valeur?.

Comment, avec une clé, puis-je trouver et retourner la valeur?

215
user1849819

Vous voudrez un Map<String, String>. Les classes qui implémentent l'interface Map incluent (sans toutefois s'y limiter):

Chacun est conçu/optimisé pour certaines situations (consultez leur documentation respective pour plus d’informations). HashMap est probablement le plus commun; le go-to default.

Par exemple (en utilisant un HashMap):

Map<String, String> map = new HashMap<String, String>();
map.put("dog", "type of animal");
System.out.println(map.get("dog"));
type d'animal
292
arshajii

Cela crée un dictionnaire de texte (chaîne):

Map<String, String> dictionary = new HashMap<String, String>();

vous l'utilisez alors comme:

dictionary.put("key", "value");
String value = dictionary.get("key");

Fonctionne mais donne une erreur vous devez garder la classe de constructeur identique à la classe de déclaration. Je sais qu'il hérite de la classe parente mais, malheureusement, cela donne une erreur lors de l'exécution.

Map<String, String> dictionary = new Map<String, String>();

Cela fonctionne correctement.

76
SmartK8

Utilisez interface de la carte et une implémentation telle que HashMap

11
Puyover

Il y a un dictionnaire de classe abstrait

http://docs.Oracle.com/javase/6/docs/api/Java/util/Dictionary.html

Cependant, cela nécessite une mise en œuvre.

Java nous donne une implémentation de Nice appelée Hashtable

http://docs.Oracle.com/javase/6/docs/api/Java/util/Hashtable.html

6
Cruncher