Utilizando Comparator

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.