Я работаю над проектом, в котором я использую HashSet
класса, который я создал, который я назову Test
. Я определил заявленное HashSet
так:
HashSet<Test> t = new HashSet<Test>();
t.add(new Test("asdf", 1));
t.add(new Test("hello", 2));
t.add(new Test("hello", 3));
Я пытался использовать
t.contains(new Test("asdf", 1));
но возвращается false
. Тем не менее, когда я использую HashSet<Character>
, кажется, работает нормально. Я попытался переопределить предыдущее объявление equals
, но оно не сработало. Я пытался оставить equals
в покое, но я все еще получил false
. Мне нужно знать, что я делаю не так?
также, я не редактировал хеш-функцию, я только изменил Test.equals (Object o). Это простой проект, и, поскольку в документации Java указано, что он использует o.equals (this), я подумал, что не должен был бы.