Увеличете скоростта на HashSet

Имам списък с обекти с уникален идентификатор (id), извлечен от DB. За конкретен сценарий трябва да премахна дубликати. За тази цел го съхранявам в HashSet. Този процес обаче отнема известно време.

Исках да знам как този HashSet идентифицира дубликати. Функцията toString е заменена. Има ли някаква друга функция или нещо, което трябва да отменя, за да ускоря функцията HashSet?

Ще бъде ли от полза замяната на хеш функция?


person Akhil K Nambiar    schedule 11.11.2014    source източник
comment
HashSet използва hashCode и equals.   -  person Thilo    schedule 11.11.2014
comment
изберете различен (...)   -  person Scary Wombat    schedule 11.11.2014


Отговори (1)


Трябва да замените методите hashCode и equals. Това са методите, използвани за намиране на ключ в HashSet/HashMap.

HashSet идентифицира дубликати, като първо изчислява hashCode на обекта, който търси, и след това итерира всички обекти в HashSet, които споделят това hashCode и ги сравнява с търсения обект с equals, докато се намери съвпадение.

person Eran    schedule 11.11.2014