Какие знаешь коллекции, которые используют hashcode

«Какие знаешь коллекции, которые используют hashcode» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HashMap, HashSet, LinkedHashMap, LinkedHashSet и HashTable используют hashCode() для хранения и поиска элементов.

Пример с HashMap:

val map = HashMap<String, Int>()
map["key"] = 42  // hashCode() ключа "key" определяет бакет
println(map["key"]) // 42

Важно:

  • Если hashCode() не переопределён корректно, возможны коллизии.
  • equals() должен быть согласован с hashCode() (если a == b, то a.hashCode() == b.hashCode()).
  • HashTable устарел, вместо него лучше использовать ConcurrentHashMap.