Java比较创建的链表

时间:2019-07-02 02:43:08

标签: java linked-list

我正在研究创建链接列表的基础知识,需要确定在替换之前和之后两者是否相等。替换正常进行,因为我要检查主要方法中的打印语句,但是替换后我不知为何无法正确比较这两者。问题出在我的equals方法中。

class MyClass:
    MyList = []

    def add_to_list(self):

        for item in range(3):
            self.MyList.append("Item " + str(item))


MyObj = []

for i in range(3):
    MyObj.append(MyClass())
    MyObj[i].add_to_list()

    print("Object " + str(i))
    print(MyObj[i].MyList)

2 个答案:

答案 0 :(得分:2)

总是说他们是平等的吗?

您要使用相同的节点初始化currentNodeaListNode

Node currentNode = firstNode;
Node aListNode = firstNode;

您可能想要这样:

Node currentNode = firstNode;
Node aListNode = aList.firstNode;

修复此问题后,您会发现它可以永远运行。一旦意识到两个列表不相等,就应该return false。然后,您可以摆脱isEqual。现在,您将isEqual设置为false,但是您永远不会离开循环。

答案 1 :(得分:1)

equals函数中,您将同时在同一位置启动currentNodeaListNode

我相信您想将currentNode初始化为旧列表,并将aListNode初始化为新列表,反之亦然,以便将两者进行比较,否则,您总是会从中获得真实的回报功能