Retornar chaves ordenadas em um map

Olá pessoal,

Estou na seguinte situação, tenho um TreeMap onde as chaves são nomes de pessoas e os valores podem alternar entre “SIM” e “NÃO”, preciso imprimir para o usuário essas chaves (nomes) ordenadas de uma forma onde primeiro mostre em ordem alfabética todos as chaves que tem como valor “SIM” e depois mostre também em ordem alfabética as chaves com o valor “NÃO”. É um exercício de curso. Ex:

Ana NÃO
Pedro SIM
João SIM
Maria NÃO

A saída seria:
João
Pedro
Ana
Maria

Esse TreeMap faz parte do exercício?

Se não fizer, você pode usar um Map<String, TreeSet> para armazenar os dados (a chave do mapa sendo SIM ou NAO, e o TreeSet com o nome das pessoas.

Se fizer parte do exercício você poder percorrer o TreeMap duas vezes, uma para SIM e uma para NAO filtrando o valor que está interessado.

Não é obrigatório o usar o TreeMap, como ainda estou aprendendo estou usando o que vi nos exemplos. Porém é obrigatório a ordem de entrada dos valores ser primeiro o nome e depois SIM/NÃO.