2012-11-24 17 views
157

Ich versuche ein Wörterbuch (wie im physischen Buch) zu implementieren. Ich habe eine Liste von Wörtern und ihren Bedeutungen.Wie erstellen Sie ein Wörterbuch in Java?

Welche Datenstruktur/Art bietet Java an, um eine Liste von Wörtern und ihre Bedeutung als Schlüssel/Wert-Paare zu speichern.

Wie, bei einem Schlüssel, kann ich den Wert finden und zurückgeben?

+16

Nun, wieder zu öffnen, in dem Geist auf die Frage zu konzentrieren, nicht der Nutzer, ich wähle. Ich bin mir sicher, dass dieser Benutzer den Kurs sowieso schon beendet hat. ;) Es ist ein Duplikat von http://stackoverflow.com/questions/1540673/java-equivalent-to-python-dictionaries, aber ich denke, die Antworten hier sind besser. –

Antwort

8

Verwenden Map interface und eine Implementierung wie HashMap

+0

Ein Link zu einer Lösung ist willkommen, aber stellen Sie bitte sicher, dass Ihre Antwort ohne sie nützlich ist: [Fügen Sie einen Kontext um den Link hinzu] (// meta.stackexchange.com/a/8259), damit Ihre Mitbenutzer eine Idee haben, was es ist und warum es dort ist, zitieren Sie dann den relevantesten Teil der Seite, auf den Sie verlinken, falls die Zielseite nicht verfügbar ist. [Antworten, die etwas mehr als ein Link sind, können gelöscht werden.] (// stackoverflow.com/help/deleted-answers) – FelixSFD

+1

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier einzubeziehen und bereitzustellen der Link als Referenz. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Review] (/ review/low-quality-posts/17044904) – sfat

48

Das Wörterbuch des Textes erstellt (string):

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

Sie dann verwenden, als ein:

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

'dictionary [" key "]' wird nicht funktionieren - es sollte 'dictionary.get (" key ")' sein. – arshajii

+9

Es stimmt, wahrscheinlich einige C# schlüpfte in :) – SmartK8

221

Sie werden eine Map<String, String> wollen. Klassen, die die Map Schnittstelle implementieren umfassen (sind aber nicht beschränkt auf):

Jeder ausgelegt ist/optimiert für bestimmte Situationen (gehen Sie zu ihren jeweiligen docs Für mehr Information). HashMap ist wahrscheinlich am häufigsten; die Standardeinstellung für das Gehen.

Zum Beispiel (unter Verwendung eines HashMap):

Map<String, String> map = new HashMap<String, String>(); 
map.put("dog", "type of animal"); 
System.out.println(map.get("dog")); 
 
type of animal 
+1

@Cruncher Es implementiert auch 'Map' (überprüfen Sie die javadoc) – arshajii

+1

@arshajii ich einen Zweifel haben wir alle Fäden im Wörterbuch manuell zuordnen oder ich kann sagen, dass wir die Bedeutung manuell speichern aller Wörter. Also meine Frage ist, ist es eine Möglichkeit, wie db (Dump) Dateien von Wörterbuch der Wörter und ihre Bedeutung/Definition zu holen, damit wir die Bedeutung jedes Wortes vermeiden manuell hinzufügen –

+0

@VighaneshGursale Sie müssen eine Put-Methode verwenden, um zu bauen Ihre Datenstruktur während der Ausführung. Stellen Sie sich einen Put-Befehl so vor, als würden Sie die Datei von der CD lesen und in den Speicher (RAM) legen, damit Sie damit arbeiten können. Wenn Sie eine Datei haben, die als Datenstruktur geladen werden soll, müssen Sie in die Java-Quelle schauen, aber es ist komplex. –

Verwandte Themen