我遇到了我的类AbstractListNode,它应该实现单链表的节点。我有一个方法可以比较两个列表在大小和节点的每个项目中是否相等。但是,我发现如果我对传入的对象使用Comparable类型,则该方法不起作用,而如果我创建类型AbstractListNode,则该方法有效。谁能帮助我理解为什么会这样?我正在研究的实验室说我们应该将参数输入为Comparable。
public boolean equals(Comparable item){
boolean isEqual = false;
AbstractListNode compare = (AbstractListNode) item;
int thisSize = size();
int compareSize = compare.size();
if (thisSize == compareSize){
AbstractListNode thisItem = this;
while (!thisItem.isEmpty()){
if(thisItem.item().equals(compare.item())){
isEqual = true;
compare = compare.next();
thisItem = thisItem.next();
}else{
isEqual = false;
}
}
System.out.println(isEqual);
}