Ajuda: Ordenar HashMap em Java

Froz3n

I fold therefore I AM
Boa noite,

estou perante um pequeno problema do qual gostaria da vossa ajuda.

Tenho de momento um HashMap<String, String> com algumas entradas:



HashMap <String, String> batata = new HashMap <String, String>();

{8cb3d0c6=Interface, c2b3f4f8=Cetra, 66791b6f=Actor, 23338591=Business}




A minha duvida é simples, quero ordenar o HashMap de forma a ficar:

{66791b6f=Actor, 23338591=Business, c2b3f4f8=Cetra, 8cb3d0c6=Interface }

Ou seja, uma forma de ordenar pela String que está no campo Value.



Já pesquisei bastante, e tenho mais HashMaps a serem ordenados com outros tipos que não Strings. Apenas as Strings estão me a dar dores de cabeça :P

Obrigado!
 
A meu ver nao faz sentido ordenar um HashMap visto que é uma estrutura de dados que guarda Chave, Valor em que o custo de acesso é O(1) atraves do hash da chave gera um indice e acerta logo na posiçao do array acertando no valor que queriamos. (claque que em certos casos quando existe colisao tem que se percorrer uma lista, mas este caso nao e o mais frequente)
 
Achei estranho dizeres que tens outros HashMapas (com outros tipos que não strings) ordenados. Isso vai contra aquilo que penso saber sobre HashMapas do Java: não são ordenáveis. O HashMapas até pode devolver os elementos sempre na mesma ordem e na ordem que queres, mas não são dadas garantias de que a ordem seja sempre essa.

Diria que a tua maior aposta seria usar TreeMaps (que implementam o SortedMap).
 
Back
Topo