Bom dia amigos, estou com uma duvida em relacao a classificao com TreeSet implementando a interface Comparable, estou usando o metodo compareTo para ordenar os elementos, porem um TreeSet nao deveria ter duplicatas, correto? Pois bem, a saida do meu codigo da maneira que esta nao elimina a duplicidade, tinha entendido que a sobrescricao dos metodos equals e hashCode eliminaria a duplicidade e o metodo compareTo ordenaria os objetos, segue abaixo meu codigo:
import java.util.Date;
import java.util.Set;
import java.util.TreeSet;
public class Veiculo implements Comparable{
String marca;
String anoFabricacao;
Integer chassi;
public Veiculo(String marca, String anoFabricacao, Integer chassi){
this.marca = marca;
this.anoFabricacao = anoFabricacao;
this.chassi = chassi;
}
public boolean equals(Object obj){
if(((Veiculo)obj).chassi==this.chassi)
return true;
return false;
}
public int hashCode(){
return chassi;
}
@Override
public int compareTo(Object o) {
return this.anoFabricacao.compareTo(((Veiculo)o).anoFabricacao);
}
public String toString(){
return "Marca: " + marca + "\n" + "Ano Fabricacao: " + anoFabricacao + "\n" + "Chassi: " + chassi + "\n";
}
public static void main(String[] args) {
Set veiculo = new TreeSet();
veiculo.add(new Veiculo("Ford","2000",123));
veiculo.add(new Veiculo("GM", "2011",123));
veiculo.add(new Veiculo("Volks","2000", 900));
veiculo.add(new Veiculo("Citroen","2007", 2000));
veiculo.add(new Veiculo("GM","2009",215));
System.out.println(veiculo);
}
}
Por favor, se alguem puder me ajudar eu agradeco. Abraco a todos.