Criei uma Classe para treinar o que foi ensinado.
package Principal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import funcionario.Gerente;
public class TestaComparator {
public static void main(String[] args) {
//Instaciação da Classe Gerente
Gerente gerente = new Gerente("Mauriciu", "Guedes", "232.111.333-22", 3245.53f);
Gerente gerente2 = new Gerente("Paulo", "Silveira", "222.111.333-22", 3867.46f);
Gerente gerente3 = new Gerente("Carlos", "Araujo", "344.123.113-32", 3120.49f);
Gerente gerente4 = new Gerente("Matheus", "Oliver", "311.232.211-11", 3231.59f);
//Adição das referências ao Array
List<Gerente> gerentes = new ArrayList<Gerente>();
gerentes.add(gerente);
gerentes.add(gerente2);
gerentes.add(gerente3);
gerentes.add(gerente4);
//Percorre o for antes do Compare
for (Gerente arrayGerentes : gerentes) {
System.out.println(arrayGerentes);
System.out.println();
}
//Instanciando o Objeto
GerenteComparator comparador = new GerenteComparator();
gerentes.sort(comparador);
System.out.println("-----------------------------------------");
//Percorre o for depois do Compare
for (Gerente arrayGerentes : gerentes) {
System.out.println(arrayGerentes);
System.out.println();
}
}
}
//Classe para comparar que implementa o Comparator
class GerenteComparator implements Comparator<Gerente> {
@Override //método para comparar Objetos
public int compare(Gerente g1, Gerente g2) {
if (g1.getSalario() < g2.getSalario()) {
return 1;
}
if (g1.getSalario() > g2.getSalario()) {
return -1;
}
return 0;
}
}
Fiz comentários me baseando no que eu entendi. Esta correto?