-1
ここに私のequalsメソッドの実装があります。誰かが私にそれをチェックアウトして、それがうまくいくか、それを改善できるかを教えてもらえますか?Circularly Linked Listのために書いたequalsメソッドのこの実装を誰かが見渡すことができますか?
public boolean equals(Object o) {
if (o == null) return false;
if (getClass() != o.getClass())
return false;
CircularlyLinkedList other = (CircularlyLinkedList) o;
if (size != other.size)
return false;
if (tail != other.tail)
return false;
Node walkA = tail.getNext();
Node walkB = other.tail.getNext();
Node sentinel = tail;
while (walkA != sentinel) {
if (!(walkA.getElement().equals(walkB.getElement())))
return false;
walkA = walkA.getNext();
walkB = walkB.getNext();
}
return true;
}
これで、Object.equalsメソッドではなく、このクラスのequalsメソッドを呼び出すことになりますか?
tail'は 'Node'は、オブジェクト('!= '/' == ')あなたの参照の比較が失敗する分離されている'場合に注意してください。あなたはノードの内容を比較したいと思うでしょう。さらに、 'walkA' /' walkB'変数を再割り当てする必要があります。最後に、あなたのコレクションの実際に含まれているオブジェクトで使用するために 'Object#equals'を調べてください。 – Rogue
それをテストするためのプログラムを書いてみませんか? (ちなみに、私はこのメソッドがいくつかのリストのために終了しないと思う)。 –
JUnitについて学ぶのに最適な時間:) –