Mi proyecto es una guía telefónica que está utilizando BSTree<E>. Cada nodo del árbol es BTNode<E>. En la clase principal, sustituyo E con la clase Par, que tiene (String name, String number), cuando defino los nodos.
Tengo la siguiente clase comparador para comparar entre los 2 tipos E:
import java.util.Comparator;
public class BTNodeComparator<E> implements Comparator<E>
{
public int compare(E a, E b) throws ClassCastException
{
return ((Comparable<E>) a).compareTo(b);
}
}
y lo uso en BSTree<E>.
Ahora, cuando ejecuto el programa y se trata de la comparación, me da errores en el comparador porque ahora se compara entre dos pares
¿Cómo puedo solucionar este problema? Lo que quiero es comparar entre los nombres de los dos pares?
Lo siento por mi mala explicación. Mi inglés es flojo.
=========================
Editar:
@Tim: Después de probar la solución que me da este error:
java.lang.NullPointerException
at Pair.compareTo(Pair.java:36) // @ return name.compareTo(pair.getName());
at Pair.compareTo(Pair.java:2) // @ public class Pair implements Comparable<Pair>
at BTNodeComparator.compare(BTNodeComparator.java:24) // @ return (a.compareTo(b));
at BTNodeComparator.compare(BTNodeComparator.java:20) // @ public class BTNodeComparator<E extends Comparable<E>> implements Comparator<E>
at BSTree.search(BSTree.java:285)
at BSTree.insert(BSTree.java:300)
at PhoneBook.main(PhoneBook.java:25)
Por cierto, me decleared BTNodeComparator en BSTree de la siguiente manera:
protected Comparator<E> c = new BTNodeComparator();
if (c.compare(target, cursor.getElement()) < 0) cursor = cursor.getLeft();













