Встречается на 2% собеседований по Java

Когда возникает коллизия

Коллизия возникает, когда два разных ключа хеш-таблицы (например, HashMap) дают одинаковый хеш-код. Это приводит к тому, что оба ключа пытаются занять одну и ту же ячейку (бакет).

В Java коллизии обрабатываются через:

  1. Цепочки (chaining) — элементы с одинаковым хешом хранятся в виде связанного списка или дерева (в Java 8+ при большом количестве коллизий).
  2. Открытую адресацию (open addressing) — поиск следующей свободной ячейки.

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("Aa", 1);  // Хеш "Aa" = 2112
map.put("BB", 2);  // Хеш "BB" = 2112 → коллизия!

Решение:

  • Переопределять hashCode() и equals() корректно.
  • Использовать LinkedHashMap или TreeMap, если порядок или сортировка критичны.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы