Рассмотрим такую структуру данных, как словарь (синонимы: ассоциативный массив, отображение, map, dictionary). Словарь в Java реализуется с помощью интерфейса Map. Мы разберем его реализацию классом HashMap. В качестве примера напишем программу «Англо-русский словарь» на Java.
Словарь: общая информация и использование в Java
Словарь (dictionary) — это структура данных, позволяющая хранить информацию в виде комбинации «ключ» — «значение» (key — value). То есть, с каким либо значением (value) мы ассоциируем ключ (это может быть: id, термин и т. д.) и эту пару заносим в словарь. Обращение к элементу словаря, удаление, поиск по словарю производится по ключу. С помощью данной структуры, например, удобно организовать телефонный справочник, где имени (key) соответствует номер телефона (value).
В Java словарь определяется следующим образом:
1 |
Map<String,String> dictionary = new HashMap<String,String>(); |
Класс HashMap реализует интерфейс Map.
Добавление элемента производится с помощью метода put:
1 |
dictionary.put(key, value); |
Получение значения элемента по ключу выполняется с помощью метода get:
1 |
dictionary.get(key); |
Для удаления записи с определенным ключом используется remove:
1 |
dictionary.remove(key); |
Метод containsKey(key) возвращает true, если в словаре содержится элемент в ключом key, в противном случае будет возвращено false.
Чтобы получить все ключевые слова, всех элементов словаря, можно вызвать keySet:
1 |
dictionary.keySet(); |
Аналогично, для получения всех значений элементов ассоциативного массива используется метод values:
1 |
dictionary.values(); |
Метод size возвращает количество записей в словаре:
1 |
dictionary.size(); |
Конструкция:
1 |
dictionary.toString(); |
возвращает все пары «ключ» — «значение», содержащиеся в данном словаре.
Заметим, что методы keySet(), values() и toString() возвращают элементы не в том порядке, в котором они были добавлены в словарь, а в произвольном.
Словарь: пример программы на Java
Создадим программу на языке программирования Java, демонстрирующую работу со структурой данных — словарь (dictionary). В качестве примера возьмем такую предметную область, как «Англо-русский словарь»: добавим в него слова, обозначающие дни недели и их перевод.
В данной программе показана работа со всеми методами, разобранными выше. Весь код сопровождается комментариями.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package dictionarypractice; import java.util.HashMap; import java.util.Map; public class DictionaryPractice { public static void main(String[] args) { // English to Russian Dictionary Map<String,String> engRus = new HashMap<String,String>(); //добавление элементов engRus.put("Monday", "Понедельник"); engRus.put("Tuesday", "Вторник"); engRus.put("Wednesday", "Среда"); engRus.put("Thursday", "Четверг"); engRus.put("Friday", "Пятница"); //получение элементов System.out.println(engRus.get("Monday")); System.out.println(engRus.get("Tuesday")); System.out.println(engRus.get("Wednesday")); System.out.println(engRus.get("Thursday")); System.out.println(engRus.get("Friday")); //содержит ли словарь запись с ключом "Wednesday"? System.out.println(engRus.containsKey("Wednesday")); System.out.println(engRus.keySet()); System.out.println(engRus.values()); System.out.println(engRus.size()); engRus.remove("Monday"); System.out.println(engRus.toString()); } } |
Демонстрация работы программы, использующей структуру данных — словарь:
Скачать исходный код (проект для NetBeans IDE) можно по ссылке ниже.
Скачать исходник
Поделиться в соц. сетях: