私は自分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)を使用すると記載されているため、使用する必要はないと思いました。