滝:
で休止マニュアルあなたが(多くの値の関連を表現するために推奨される方法)を設定するには、永続クラスのインスタンスを配置する予定の場合はequals()とhashCode()メソッドをオーバーライドする必要があると言われています。
だから、質問が登場しました:
それをセットに多くの値の関連を表現するための推奨される方法ですなぜ?(私は使用してはならない理由、のは、ArrayListのか、LinkedListのとしましょう)。
何が、私はセットを使用する場合にのみ、私はこれらのメソッドをオーバーライドする必要があることをシーンの後ろになりますか?
ユージン:
さて、どのように他だろうHashSet
を推論平等?これはに基づいていますhashCode/equals
。以下のためにSet
あなたは両方の方法を必要とする、ためList
のequals(のような方法でのみ使用されているcontains
など)が、彼らはあなたが変な驚きで実行しないように、両方を定義しています。
一般的にはあなたが上書きしている場合、それは良いことですcompareTo
から、Comparable
としてウェル-これがために内部的に使用例えばあるHasMap
タイが発見された場合。あなたは今までのキーとしてこれらを持つように計画している場合は、に、その何とか良いアイデアではありませんMap
。
それtie
私は2つのハッシュコードが対等であり、ときに使用されたようHashMap
に移動することを決定しperfectly balanced tree node
、参照ここか、この1。あるいは、この1