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.