1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda: Ordenar HashMap em Java

Discussão em 'Programação' iniciada por Froz3n, 30 de Março de 2013. (Respostas: 2; Visualizações: 1504)

  1. Froz3n

    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!
     
  2. DarkT

    DarkT Power Member

    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)
     
  3. MadnessJonny

    MadnessJonny Power Member

    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).
     

Partilhar esta Página