Я реализую отсортированный список, используя связанные списки. Мой класс узла выглядит так
public class Node<E>{
E elem;
Node<E> next, previous;
}
В классе отсортированного списка у меня есть метод добавления, где мне нужно сравнить общие объекты на основе их реализации методов compareTo(), но я получаю эту синтаксическую ошибку «Метод compareTo (E) не определен для типа E». Я попытался реализовать метод compareTo в Node, но тогда я не могу вызвать ни один из методов объекта, потому что 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 );
}
}