如何使用Comparable比较链表中的通用节点?
发布时间:2020-12-14 23:22:37 所属栏目:Java 来源:网络整理
导读:我正在使用链接列表实现排序列表.我的节点类看起来像这样 public class NodeE{ E elem; NodeE next,previous;} 在排序列表类中我有add方法,我需要根据compareTo()方法的实现来比较泛型对象,但是我得到了这个语法错误 “对于类型E,方法compareTo(E)未定义”.
我正在使用链接列表实现排序列表.我的节点类看起来像这样
public class Node<E>{ E elem; Node<E> next,previous; } 在排序列表类中我有add方法,我需要根据compareTo()方法的实现来比较泛型对象,但是我得到了这个语法错误 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绑定到可比较:
public class Node<E extends Comparable<E>>{ E elem; Node<E> next,previous; } 它现在将编译. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |