Да, будет.
При одинаковом hashCode()
все элементы будут попадать в одну "корзину" (bucket) в HashMap
. Это приведет к вырождению HashMap
в связанный список (или дерево, если элементов достаточно много и используется Java 8+ с TreeNode
), что значительно ухудшит производительность операций put()
, get()
, remove()
до O(n) вместо O(1) в среднем случае.
Таким образом, HashMap
будет корректно функционировать, но потеряет свое главное преимущество в скорости из-за коллизий хешей. Для различения объектов с одинаковым хешем используется метод equals()
.
java
Да, будет.
При одинаковом hashCode()
все элементы будут попадать в одну "корзину" (bucket) в HashMap
. Это приведет к вырождению HashMap
в связанный список (или дерево, если элементов достаточно много и используется Java 8+ с TreeNode
), что значительно ухудшит производительность операций put()
, get()
, remove()
до O(n) вместо O(1) в среднем случае.
Таким образом, HashMap
будет корректно функционировать, но потеряет свое главное преимущество в скорости из-за коллизий хешей. Для различения объектов с одинаковым хешем используется метод equals()
.
java
Register or sign in to get access to full answers for all questions from the question bank.