public class LinkedList {
Object contents;
LinkedList next = null;
public boolean equals(Object item) {
return (this == item) || ((item instanceof LinkedList) && this.equals((LinkedList)item));
}
public boolean equals(LinkedList item) {
return myUtil.equals(this.contents, item.contents) && myUtil.equals(this.next, item.next);
}
}
public class myUtil{
public static boolean equals(Object x, Object y) {
return (x == y) || (x != null && x.equals(y));
}
}
main(){
LinkedList myList = new LinkedList();
myList.next = new LinkedList();
LinkedList head = myList.next;
myList.next = head;
}
ここで循環リンクリストを作成したと思います。だから私がしたことは、equals メソッドを上書きして、循環参照が確実に処理されるようにすることです。
何らかの理由で LinkedList.equals が返されないようです...それは私の循環リンクリストのためですか、それともいくつかの条件がありませんか?