我正在从事一个项目,该项目涉及我使用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。但是,当我使用 a 时HashSet<Character>,它似乎工作正常。我尝试覆盖先前的equals声明,但没有奏效。我试着equals独自离开,但我仍然得到false。我需要知道我做错了什么?
另外,我没有编辑散列函数,我只更改了 Test.equals(Object o)。这是一个简单的项目,由于 java 文档声明它使用 o.equals(this),我想我不必这样做。