HashMap — один из самых часто используемых классов в Java. Он позволяет хранить данные в формате ключ → значение и получать их очень быстро. Пример:
map.put("имя", "Анна");
String name = map.get("имя"); // → "Анна" Но как это работает под капотом? В этой статье вы узнаете: HashMap<K, V> — это хэш-таблица, реализующая интерфейс Map. Она: HashMap состоит из: Каждый элемент — это объект Node<K,V>, содержащий: Шаг 1: Вычисление хэш-кода int hash = key.hashCode(); Хэш-код — это целое число, уникальное для объекта (но не всегда!) Шаг 2: Определение индекса в массиве int index = (array.length - 1) & hash; // аналог hash % array.length Шаг 3: Поиск или вставка int hash = key.hashCode(); int index = (array.length - 1) & hash; Node<K,V> node = table[index]; while (node != null) { if (node.hash == hash && key.equals(node.key)) { return node.value; } node = node.next; } return null; Алгоритм: Если в одной корзине накапливается много элементов (по умолчанию 8) HashMap преобразует цепочку в красно-ч