Olá, boa noite.
Ao reescrever o método "compare", quando implementamos Comparator, a solução que cheguei foi a mesma disponibilizada pela alura:
@Override
public int compare(Funcionario funcionario1, Funcionario funcionario2) {
return funcionario1.getIdade() - funcionario2.getIdade();
}
Porém, ao adicionar um funcionário com um nome diferente, mas com idades iguais, ele não consegue buscar um dos funcionários com a idade igual:
public class TestaFuncionario {
public static void main(String args[]) {
Funcionario f1 = new Funcionario("Barney", 13);
Funcionario f2 = new Funcionario("Jonatan", 9);
Funcionario f3 = new Funcionario("Guaraciara", 13);
Set<Funcionario> funcionarios = new TreeSet<>(new OrdenaPorIdade());
funcionarios.add(f1);
funcionarios.add(f2);
funcionarios.add(f3);
Iterator<Funcionario> iterador = funcionarios.iterator();
while (iterador.hasNext()) {
System.out.println(iterador.next().getNome());
}
}
}
Jonatan Barney
Qual seria a melhor solução, neste caso? Verificar se são iguais, no método comparable? E caso for iguais, como saber qual foi o objeto que foi retornado?