Antes
List<Person> personTempList = personList.stream()
                                        .filter(p -> 'M' == p.getSex())
                                        .collect(Collectors.toList());
Depois
public static boolean hasSexMasculine(Person person) {
	return person.getSex() == 'M';
}
        
List<Person> personTempList = personList.stream()
                                        .filter(Person::hasSexMasculine)
                                        .collect(Collectors.toList())

Esta mudança pode até parecer entranha ou que esta deixando o código mais sujo, mas bem pelo contrário com uma função como essa pode ocasionar, mesmo erros de escritas aumentando a desempenho de sua equipe.

Lembrando que desde a versão 16, é possível coletar os valores à list mais fácilmente:

List<Person> personTempList = personList.stream()
                                        .filter(Person::hasSexMasculine)
                                        .toList() // <--  
Realmente grande melhoria e praticidade.