Boa tarde!
Fiz um teste inicializando um Comparator no main por meio de um lambda, conforme código abaixo:
package br.com.alura.teste;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
import br.com.alura.modelo.Funcionario;
public class Teste {
    public static void main(String[] args) {
        Funcionario f1 = new Funcionario("Barney", 12);
        Funcionario f2 = new Funcionario("Jonatan", 9);
        Funcionario f3 = new Funcionario("Guaraciara", 13);
        Set<Funcionario> funcionarios = new TreeSet<>((Funcionario func1, Funcionario func2) -> Integer.compare(func1.getIdade(), func2.getIdade()));
        funcionarios.addAll(Arrays.asList(f1, f2, f3));
        Iterator<Funcionario> iterador = funcionarios.iterator();
        while (iterador.hasNext()) {
            System.out.println(iterador.next().getNome());
        }
    }
}O código compila e executa normalmente, mas gostaria de saber se há alguma má prática na implementação que eu fiz.
Além disso, caso não quisesse usar um Comparator, haveria algum problema em implementar a interface Comparable em Funcionario e criar uma ordem natural baseada nas idades?
Obrigado!
 
            