Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

HashMap

Словарь на основе хеш-таблицы: быстрый поиск по ключу, порядок не гарантирован.

Доступно с: Java 1.2

Синтаксис

public class HashMap<K, V> implements Map<K, V>

Примеры

Телефонная книга:

void main() {
    Map<String, String> phones = new HashMap<>();
    phones.put("Anna", "555-0101");
    phones.put("Oleg", "555-0102");
    IO.println(phones.get("Anna"));
    IO.println(phones.size());
}

Результат:

555-0101
2

Подсчёт слов:

void main() {
    Map<String, Integer> counts = new HashMap<>();
    for (String w : "a b a c b a".split(" ")) {
        counts.merge(w, 1, Integer::sum);
    }
    IO.println(counts.get("a") + " " + counts.get("b") + " " + counts.get("c"));
}

Результат:

3 2 1

Примечания

get(), put() и containsKey() работают за постоянное время. Порядок обхода зависит от хешей ключей — для порядка добавления нужен LinkedHashMap, для сортировки — TreeMap. Допускает один ключ null и значения null. Не потокобезопасен — в многопоточном коде используйте ConcurrentHashMap.

См. также

  • LinkedHashMap — Словарь, который помнит порядок добавления ключей.
  • TreeMap — Словарь, ключи которого всегда отсортированы.
  • Map.put() — Записывает значение по ключу, заменяя прежнее.
  • Map.get() — Возвращает значение по ключу или `null`.
  • ConcurrentHashMap — Потокобезопасный словарь для одновременной работы из многих потоков.

В учебнике

  • Словари: Map и HashMap — Словари Map в Java: пары ключ — значение, put и get, getOrDefault, подсчёт с merge, TreeMap и LinkedHashMap.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.