Переопределение методов equals () и hashCode () реализации HashMap - PullRequest
0 голосов
/ 11 марта 2011

У меня есть хэш-карта типа HashMap<Long, ArrayList<String>>.

Мне нужно переопределить методы equals () и hashCode (), чтобы повысить производительность.Какой должна быть переопределенная функция для этого случая?

Я точно знал, что нет.элементов я бы поместил в HashMap, поэтому я использовал initial Capacity = (No. Of Elements that will be put)/ 0.75

, где 0,75 => коэффициент загрузки, это правильно?

Ответы [ 2 ]

4 голосов
/ 11 марта 2011

equals(..) метод HashMap имеет линейную сложность. Так же, как и ArrayList. Я не думаю, что это может быть лучше - вы должны сравнить каждый элемент

1 голос
/ 11 марта 2011

Можно предположить, что объекты библиотеки Java, такие как Long, ArrayList и String, имеют правильные реализации для equals() и hashCode().

(Вы правы в том, что когда вы используете объект в качестве ключа в HashMap, вы должны убедиться, что он имеет согласованные реализации для этих методов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...