ola Amigos do forum, estou com mais uma duvida que gostaria de compartilhar, vejam por favor o codigo abaixo:
import java.util.*;
class ComparatorCarro implements Comparator{
public int compare(Object o1, Object o2){
return ((Carro)o1).chassi.compareTo(((Carro)o2).chassi);
}
}
class Carro{
Integer chassi;
String modelo;
Carro(int chassi, String modelo){
this.chassi = chassi;
this.modelo = modelo;
}
public String toString(){
return "Chassi: " + chassi + "/Modelo: " + modelo;
}
}
public class Teste {
public static void main(String[] args) {
TreeSet s = new TreeSet(new ComparatorCarro());
s.add(new Carro(123,"Popular"));
s.add(new Carro(124,"Luxo"));
s.add(new Carro(123,"Medio"));
s.add(new Carro(129,"Super"));
s.add(new Carro(1234,"Mega"));
s.add(new Carro(150,"Luxuoso"));
System.out.println(s);
}
}
A classificacao e feita normalmente, o codigo compila e executa, porem a minha duvida e: Por que tenho que colocar no codigo os metodos equals e hashCode se o resultado e o mesmo? Todos os exemplos do livro usam estes metodos mas nao entendo exatamente porque, conto com a ajuda dos amigos, obrigado.