用Java语言实现SinglyList<T>单链表类增加的boolean equals(Object obj)方法,public权限,比较this与obj引用的单链表是否相等,算法不能比较长度
时间: 2023-05-21 08:07:04 浏览: 154
以下是Java语言实现SinglyList<T>单链表类增加的boolean equals(Object obj)方法的代码:
```java
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof SinglyList)) {
return false;
}
SinglyList<?> other = (SinglyList<?>) obj;
Node<T> thisNode = this.head;
Node<?> otherNode = other.head;
while (thisNode != null && otherNode != null) {
if (!thisNode.data.equals(otherNode.data)) {
return false;
}
thisNode = thisNode.next;
otherNode = otherNode.next;
}
return thisNode == null && otherNode == null;
}
```
这个方法会比较两个单链表是否相等,具体实现方式是一个一个比较节点的数据,如果节点的数据不相等,就返回false,如果两个链表的长度不同,就会在while循环中比较到null的时候退出循环返回false,否则,当两个链表的所有节点的数据都相等时,返回true。
阅读全文