Встречается на собеседованиях • сегодня
Что такое коллизия hashCode в HashSet
Коллизия hashCode возникает, когда разные объекты возвращают одинаковый хеш-код. В HashSet это приводит к тому, что объекты попадают в одну и ту же корзину (bucket), даже если они не равны по `equals()`.
Пример:
```java
class Person {
String name;
Person(String name) { this.name = name; }
@Override
public int hashCode() { return 1; } // Умышленно плохой hashCode
}
Set set = new HashSet<>();
set.add(new Person("Alice"));
set.add(new Person("Bob")); // Коллизия - оба объекта в одной корзине
```
Последствия:
- HashSet деградирует до производительности O(n), так как корзина превращается в список
- Методы `contains()`, `add()`, `remove()` начинают работать медленнее
Решение:
- Реализовывать `hashCode()` так, чтобы разные объекты возвращали разные хеш-коды
- Соблюдать контракт между `hashCode()` и `equals()`

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы