Oi pessoal
Estou com uma dúvida sobre o TreeSet. Observem:
public class Drink implements Comparable {
public String name;
public int compareTo(Object o) {
// Drink d = (Drink) o;
// return name.compareTo(d.name);
return 0;
}
public static void main(String[] args) {
Drink one = new Drink();
Drink two = new Drink();
one.name = "Coffee";
two.name = "Tea";
TreeSet set = new TreeSet();
set.add(one);
set.add(two);
for (Object d : set){
Drink d1 = (Drink) d;
System.out.println( d1.name);
}
}
}
Neste exemplo a saída é somente Coffee, apesar de criar um Tea, ele não é adicionando na Lista. Só funciona se implementar correatmente o compareTo. Com outras lista como hashSet por exemplo funciona, notei que esse comportamento acontece com listas ordenadas (com treemap também acontece o mesmo).
Mas eu não entendi porque tem que implementar corretamente o compareTo, pois no livro diz apenas “implemente CompareTo”…
por que funciona com outras lista e com o treeset não?
abraço