Implementei o que foi mostrado na aula e gostaria de mostrar para vocês.
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);
Gerente gerente5 = new Gerente("Aluísio", "Pêra", "211.323.123-33", 3768.89f);
Gerente gerente6 = new Gerente("Cornélio", "Lima", "377.432.643-11", 3120.49f);
//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);
gerentes.add(gerente5);
gerentes.add(gerente6);
//Percorre o for antes do Compare
for (Gerente arrayGerentes : gerentes) {
System.out.println(arrayGerentes);
System.out.println();
}
//Instanciando o Objeto
SalarioComparator salarioComparador = new SalarioComparator();
GerenteComparator gerenteComparador = new GerenteComparator();
//Chamando os metédos que comparam os Objetos
gerentes.sort(salarioComparador);
gerentes.sort(gerenteComparador);
System.out.println("-----------------------------------------");
//Percorre o for depois do Compare
for (Gerente arrayGerentes : gerentes) {
System.out.println(arrayGerentes);
System.out.println();
}
}
}
//Classe para comoparar o Gerente, implementa o Comparator
class GerenteComparator implements Comparator<Gerente> {
@Override //Compara os gerentes pelo nome
public int compare(Gerente g1, Gerente g2) {
String primeiroGerente = g1.getNome();
String segundoGerente = g2.getNome();
//Compara e retorna em ordem alfabetica
return primeiroGerente.compareTo(segundoGerente);
}
}
//Classe para comparar que implementa o Comparator
class SalarioComparator 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;
}
}
O que acharam do código? Tudo certinho?