How to use comparable to compare common nodes in a linked list?

I'm using link lists to implement sort lists My node class looks like this

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

I have an add method in the sort list class. I need to compare generic objects according to the implementation of the CompareTo () method, but I get this syntax error: "for type E, the method CompareTo (E) is not defined" I try to implement the CompareTo method in node, but I can't call the method of any object because e is a generic type This is the incomplete body of the add (E element) method

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

        }
}

This is an object that implements the CompareTo method

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

Solution

Bind e to comparable:

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

It will now compile

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>