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

У меня есть список объектов с уникальным идентификатором (id), извлеченным из БД. Для определенного сценария я должен удалить дубликаты. Для этого я храню его в файле 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