У меня небольшой вопрос о коллекциях TreeSet
и hashCode
. У меня есть TreeSet
, и я добавляю в него объекты, прежде чем добавить объект, я проверяю, существует ли он в TreeSet
, используя contains
.
У меня есть 2 разных объекта, каждый из которых создает отдельный хэш-код, используя мою реализацию метода хэш-кода, пример ниже:
public int hashCode()
{
int hash = 7;
hash = hash * 31 + anAttribute.hashCode();
hash = hash * 31 + anotherAttribute.hashCode();
hash = hash * 31 + yetAnotherAttribute.hashCode();
return hash;
}
Хэш-коды для конкретного запуска: 76126352 и 76126353 (объекты отличаются только одной цифрой в одном атрибуте).
Метод contains возвращает true для этих объектов, несмотря на то, что хэш-коды разные. Есть идеи, почему? Это действительно сбивает с толку, и помощь будет действительно оценена.