HashMap хранит данные в виде пар ключ-значение.
Внутренне использует массив Node (или entry).
При добавлении пары:
hashCode().equals().java
При получении значения по ключу:
equals().Важные моментыConcurrency: HashMap не потокобезопасен.
null: Позволяет хранить один null-ключ и множество null-значений.
Производительность: В среднем операции put и get работают за O(1), но при сильных коллизиях могут деградировать до O(n) при использовании связного списка.
Заполнение (Load Factor): При достижении определенного процента заполнения массив пересоздается с увеличенным размером (рехеширование), что может быть ресурсоемким.
| Метод | Сложность (средняя) | Сложность (худшая) |
|---|---|---|
| put(key, value) | O(1) | O(n) |
| get(key) | O(1) | O(n) |
| containsKey(key) | O(1) | O(n) |