gpt4 book ai didi

java - 如何使用 Comparable 比较链表中的通用节点?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:41 24 4
gpt4 key购买 nike

我正在使用链表实现排序列表。我的节点类看起来像这样

public class Node<E>{
E elem;
Node<E> next, previous;
}

在排序列表类中,我有 add 方法,我需要根据通用对象的 compareTo() 方法的实现来比较通用对象,但我得到了这个语法错误“方法 compareTo(E) 未为类型 E 定义”。我已经尝试在 Node 中实现 compareTo 方法,但是我无法调用任何对象的方法,因为 E 是泛型类型。这是 add(E elem) 方法的未完成主体。

public void add(E elem) 
{

Node<E> temp = new Node<E>();
temp.elem = elem;

if( isEmpty() ) {
temp.next = head;
head.previous = temp;
head = temp;
counter++;
}else{
for(Node<E> cur = head; cur.next != null ; cur= cur.next) {
**if(temp.elem.comparTo(cur.elem)) {**
//do the sort;

}/*else{
cur.previous = temp;
}*/
}
//else insert at the end

}
}

这是实现compareTo方法的对象之一

public class Patient implements Comparable<Patient>{
public int compareTo(Patient that)
{
return (this.getPriority() <= that.getPriority() ? 1 : 0 );
}
}

最佳答案

将 E 绑定(bind)到 Comparable:

public class Node<E extends Comparable<E>>{
E elem;
Node<E> next, previous;
}

现在可以编译了。

关于java - 如何使用 Comparable 比较链表中的通用节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6356220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com