Ordenar HashMap

Olá.

Gostaria de ordernar valores que eu tenho em um HashMap de acordo com determinada chave.
Já tentei usar o TreeMap ao invés de HashMap, e até funciona, só que isso está influenciando todo o meu código e não sei até onde mais isso pode afetar, já que não fui eu que desenvolvi esta aplicação.
Não existe uma maneira mais fácil, por exemplo, fazer um cast, ou pegar o HashMap e jogar dentro de uma outra estrutura, passando a chave no construtor desta nova estrutura e depois voltar para HashMap?

Por exemplo:

HashMap servicoA = (HashMap)request.getSession().getAttribute("servico");
TreeMap servicoB = new TreeMap(chave, servicoA); 
HashMap servicoC = new HashMap(servicoB);
request.getSession().setAttribute("servico", servicoC);

Obrigada,
Viviane

Você pode copiar seu HashMap em um TreeMap para ordená-lo, e a seguir copiá-lo em um LinkedHashMap, para preservar a ordem do TreeMap.

Em um sistema que usava Java 1.3 nós chegamos ao ponto de criar uma classe semelhante a LinkedHashMap, para podermos ter os benefícios do HashMap (acesso rápido) e do LinkedHashMap (chaves ordenadas pela ordem de inserção).

Deu certinho.

Muito obrigada!