List<Pessoa> listaDePessoa = Arrays.asList("Paulo", "Maria", "Roberto", "Bruna")
.stream()
// para cada nome você vai instanciar uma Pessoa com aquele nome
.map(nome -> new Pessoa(nome))
.collect(Collectors.toList());
StringBuilder stringBuilder = new StringBuilder("Lista de Pessoas")
.append("\nQtd de Pessoas: ")
.append(listaDePessoa.size());
listaDePessoa.stream()
.map(Pessoa::toString) // na sua implementação o toString() retorna o nome
.sorted()
.forEach(nome -> stringBuilder.append("\nNome: ").append(nome));
System.out.println(stringBuilder);
Mas agora já entendi o motivo. O stringBuilder.append("\nNome: ") é executado uma vez antes da execução do foreach, então suponho que o que fiz, fosse equivalente a: