Estoy implementando una lista ordenada utilizando listas vinculadas. Mi clase de nodo tiene este aspecto¿Cómo comparar nodos genéricos en una lista vinculada usando Comparable?
public class Node<E>{
E elem;
Node<E> next, previous;
}
En la clase de lista ordenada tengo el método add, donde tengo que comparar objetos genéricos en base a la aplicación de compareTo() métodos, pero me da este error de sintaxis "El el método compareTo (E) no está definido para el tipo E ". He intentado implementar el método compareTo en Node, pero luego no puedo llamar a ninguno de los métodos del objeto, porque E es de tipo genérico. Aquí está el cuerpo no terminado del método 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
}
}
Aquí es uno de los objetos implemnting método compareTo
public class Patient implements Comparable<Patient>{
public int compareTo(Patient that)
{
return (this.getPriority() <= that.getPriority() ? 1 : 0);
}
}
chicos, gracias por la pista comparables. Ahora, después de hacer estos cambios, me sale este error "desajuste Bound: El tipo E no es un sustituto válido para el parámetro acotado> del tipo \t Nodo " en esta línea Nodo temp = nuevo nodo (); temp.elem = elem; –
hash