Estou estudando o Livro Java Efetivo, no capitulo 10 Item 69, surge o termo “mapas canônicos”.
Procurei bastante mas não encontrei nada que me ajudasse, alguém poderia ajudar ou indicar alguma leitura.
Digamos que vc tenha um Map<List<cidades>, float> custoCaminho
em que ele iria marcar o custo (gasolina ou distância, por exemplo) de um caminho a determinadas cidades.
Por exemplo, o conjuntoA ={Taubaté, Aparecida, Guaratinguetá}
tem o mesmo custo que o caminho B ={Guaratinguetá, Aparecida, Taubaté}
. Logo, ao fazer um custoCaminho.get(A) ou um custoCaminho.get(B) do meu mapa eu precisaria que o retorno fosse o mesmo. Isso seria resolvido se a minha lista fosse ordenada, com elementos não repetidos.
Este é um exemplo de mapa canônico.
@Edit:
Achei uma discussão interessante sobre esse assunto (em inglês).
Valeu cara !
Vou dar uma estudada no seu exemplo e uma lida no artigo.