Próbuję zaimplementować słownik (jak w książce fizycznej). Mam listę słów i ich znaczenie.
Jaką strukturę / typ danych zapewnia Java do przechowywania listy słów i ich znaczenia jako par klucz / wartość.
W jaki sposób, biorąc pod uwagę klucz, mogę znaleźć i zwrócić wartość?
java
dictionary
key-value
użytkownik1849819
źródło
źródło
Odpowiedzi:
Będziesz chciał
Map<String, String>
. Klasy, które implementująMap
interfejs obejmują (ale nie wyłącznie):HashMap
LinkedHashMap
Hashtable
Każdy jest zaprojektowany / zoptymalizowany do określonych sytuacji (więcej informacji można znaleźć w odpowiednich dokumentach).
HashMap
jest prawdopodobnie najczęstszy; przejdź do wartości domyślnej.Na przykład (za pomocą a
HashMap
):źródło
Map
(sprawdź javadoc)Map<String, String> map = new HashMap<>();
Spowoduje to utworzenie słownika tekstu (ciąg):
następnie używasz go jako:
Map<String, String> dictionary = new Map<String, String>();
To działa poprawnie.
źródło
dictionary["key"]
nie zadziała - tak powinno byćdictionary.get("key")
.Użyj interfejsu mapy i implementacji takiej jak HashMap
źródło
Istnieje słownik klas abstrakcyjnych
http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html
Wymaga to jednak wdrożenia.
Java daje nam fajną implementację o nazwie Hashtable
http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html
źródło
Dictionary
jest przestarzały i żadna z implementacji go nie rozszerza.