Словари в Java
В Java словари, также называемые картами и отображениями, реализованы классами HashMap, TreeMap (через интерфейс SortedMap), Hashtable (хэш-таблица), LinkedHashMap. Словарь представляет собой набор пар ключ-значение. При этом ключ в пределах словаря должен быть уникальным.
Добавление элемента в словарь выполняется методом put(key, value), получение значения по ключу – get(key).
С помощью методов entrySet(), keySet() и values() получают множества соответственно пар, ключей, либо значений. Их можно преобразовать в списки, например, передав в конструктор List'а или методом addAll().
import java.util.ArrayList; import java.util.HashMap; public class MapTest { public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.put("One", "Один"); map.put("Two", "Два"); map.put("Three", "Три"); System.out.println(map); System.out.println(map.entrySet()); System.out.println(map.keySet()); System.out.println(map.values()); ArrayList<String> val = new ArrayList<>(map.values()); System.out.println(val); ArrayList<HashMap.Entry> entries = new ArrayList<>(map.entrySet()); System.out.println(entries); for (HashMap.Entry entry : entries) { System.out.println(entry.getKey()); } ArrayList<String> keys = new ArrayList<>(); keys.addAll(map.keySet()); System.out.println(keys); } }
Результат:
{One=Один, Two=Два, Three=Три} [One=Один, Two=Два, Three=Три] [One, Two, Three] [Один, Два, Три] [Один, Два, Три] [One=Один, Two=Два, Three=Три] One Two Three [One, Two, Three]
В классе HashMap есть внутренний класс Entry, объекты которого хранят атрибуты одной пары.
Другие часто используемые методы Map: containsKey(key) – проверка наличия ключа, containsValue(value) – проверка наличия значения, remove(key) – удаление элемента по ключу.