Tenho o exercício abaixo para resolver, mas tenho algumas dúvidas:
[b]Crie uma classe comparável Pessoa.
Essa classe tem as propriedades NOME_COMPLETO e PF_PJ. PF_PJ deverá determinar se é pessoa física ou jurídica (use letras ou numeros - F/J, 0/1, etc.).
Em um método principal, inclua diversos objetos Pessoa em um ArrayList qualquer e faça com que o mesmo seja mostrado na tela de forma ordenada, segundo os critérios abaixo:
- todas as pessoas físicas aparecem no início, e estas vêm ordenadas pelo SOBRENOME da pessoa (última palavra do nome)
- depois das pessoas físicas vem as jurídicas, e estas vêm ordenadas pelo NOME_COMPLETO
[/b]
Se tenho que colocar um nome + sobrenome de uma pessoa, como faço para mostrar apenas o sobrenome da pessoa?
Como faço para ordená-las como físicas e jurídicas?
Abaixo o código do que fiz até agora, mas não sei se está correto:
public class Pessoa {
public String NOME_COMPLETO;
public String PF_PJ;
public static void main(String[] args) {
Pessoa p1 = new Pessoa();
p1.NOME_COMPLETO = "José Santos";
p1.PF_PJ = "f";
Pessoa p2 = new Pessoa();
p2.NOME_COMPLETO = "Luiz Costa";
p2.PF_PJ = "j";
Pessoa p3 = new Pessoa();
p3.NOME_COMPLETO = "Sandro Machado";
p3.PF_PJ = "f";
Pessoa p4 = new Pessoa();
p4.NOME_COMPLETO = "Carlos Silva";
p4.PF_PJ = "j";
ArrayList pessoas = new ArrayList();
pessoas.add(p1);
pessoas.add(p2);
pessoas.add(p3);
pessoas.add(p4);
Collections.sort(pessoas, new OrdenaPeloNome());
for (Object o:pessoas) {
Pessoa p = (Pessoa) o;
System.out.println(p.NOME_COMPLETO);
}
}
}
*************************************************************
public class OrdenaPeloNome implements Comparator<Pessoa> {
public int compare(Pessoa o1, Pessoa o2) {
return o1.NOME_COMPLETO.compareTo(o2.NOME_COMPLETO);
}
}
Se alguém conseguir me ajudar, ficarei muito grato.