Словари в 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) – удаление элемента по ключу.

Программирование на Java. Курс




Все разделы сайта