Este código abaixo lança uma Exceção :
Exception in thread "main" java.lang.ClassCastException: capitulo07.TestComparator
Sei que o conjunto TreeSet é classificado pela ordem natural, mas oque ocorre para que seja lançada esta exceção.
Alguém poderia me explicar o porque deste erro ?
Usando uma classe que implementa Comparable (é o que você provavelmente queria desde o começo)
ou
Passando como parâmetro para o construtor um objeto de uma classe que implementa Comparator. A vantagem disso é que você pode ter vários SortedSets com diversas ordens e usando a mesma classe-base.
Vou dar um exemplo daqui a pouco.
derheimen
Implementei usando o Comparable, como descrito abaixo:
Funcionou belezinha.
Mas qual a principal diferenca entre Comparator e Comparable ?
T
thingol
Digamos que você tenha uma classe “Cliente” com três campos: nome, endereço e telefone. Se você implementasse Comparable na classe Cliente, e o método compare só usasse o nome, você só conseguiria ordenar por nome (digamos).
Mas se você criar três classes que implementam Comparator (uma delas pega 2 objetos Cliente e compara por nome, outra por endereço e outra por telefone), você pode ordenar por nome, ou por endereço, ou por telefone.