Я намагаюся реалізувати словник (як у фізичній книзі). У мене є список слів та їх значення.
Яку структуру / тип даних надає Java для зберігання списку слів та їх значень як пар ключів / значень.
Як, даючи ключ, я можу знайти та повернути значення?
Я намагаюся реалізувати словник (як у фізичній книзі). У мене є список слів та їх значення.
Яку структуру / тип даних надає Java для зберігання списку слів та їх значень як пар ключів / значень.
Як, даючи ключ, я можу знайти та повернути значення?
Відповіді:
Ви захочете Map<String, String>
. Класи, що реалізують Map
інтерфейс, включають (але не обмежуються ними):
Кожен розроблений / оптимізований для певних ситуацій (для отримання додаткової інформації перейдіть до відповідних документів). HashMap
мабуть, найпоширеніший; за замовчуванням.
Наприклад (за допомогою a HashMap
):
Map<String, String> map = new HashMap<String, String>();
map.put("dog", "type of animal");
System.out.println(map.get("dog"));
тип тварини
Map
(перевірити javadoc)
Map<String, String> map = new HashMap<>();
Це створює словник тексту (рядка):
Map<String, String> dictionary = new HashMap<String, String>();
потім ви використовуєте його як:
dictionary.put("key", "value");
String value = dictionary.get("key");
Працює, але дає помилку, вам потрібно зберегти клас конструктора таким же, як клас декларації. Я знаю, що він успадковується від батьківського класу, але, на жаль, він дає помилку під час виконання.
Map<String, String> dictionary = new Map<String, String>();
Це працює належним чином.
dictionary["key"]
не буде працювати - так і має бути dictionary.get("key")
.
Використовуйте інтерфейс Map та таку програму, як HashMap
Існує абстрактний словник класів
http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html
Однак для цього потрібна реалізація.
Java дає нам приємну реалізацію під назвою Hashtable
http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html
Dictionary
застаріла, і жодна з реалізацій не поширює її.