-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 메소드를 호출 할 예정입니까?
가 명심가'Node'이 참조 비교 객체 ('! ='/'==') 실패합니다. 당신은 노드의 내용을 비교하기를 원할 것입니다. 그 위에'walkA' /'walkB' 변수를 다시 할당해야합니다. 마지막으로, 컬렉션에 포함 된 실제 객체에 사용하기 위해'Object # equals'를 조사하십시오. – Rogue
테스트 할 프로그램을 작성하지 않으시겠습니까? (덧붙여서, 나는이 방법이 어떤 목록에서는 끝나지 않을 것이라고 생각한다). –
JUnit에 대해 배울 최적의 시간 :) –