Ordenando arraylist e passando para hashmap

Bom dia pessoal,

esse é o meu primeiro post aqui e eu fico feliz por ter achado essa comunidade de java. O site e fórum de vocês são bastante ricos em conteúdo :smiley:

Bom eu estou com um probleminha básico… Eu estou fazendo uma agenda para a faculdade e parte do trabalho é ler um txt posicional, jogar numa estrutura para ordená-lo (usei arraylist) e depois jogar em um hashmap:

	int size = lista.size();
	Collections.sort(lista);
	for (int i=0; i<size; i++) {
		nome  = ((String) lista.get(i)).substring(0,50);
		telefone = ((String) lista.get(i)).substring(51,62);
		endereco = ((String) lista.get(i)).substring(63,83);
		Contato a5 = new Contato(nome,telefone,endereco);
		adicionaContato(a5);
		//System.out.println("lista " + i + " : " + (String) lista.get(i));
	 }
	listaContato(); 

O problema é: dentro desse loop, quando eu passo o arraylist para o hashmap chamando adiciona contato ele salva desordenado, mas se eu dou um println da lista dentro do loop, ele me volta a lista ordenada :!:

Fiquei meio perdido nesse pedaço de código… Alguém poderia me dar uma luz?

Obrigado desde já!
Rodrigo

Olá, seja bem vindo!

O HashMap é uma estrutura nao ordenada. Se você quer manter seus dados ordenados (ordem de inserção) num Map deve usar a LinkedHashMap.

http://java.sun.com/j2se/1.5.0/docs/api/java/util/LinkedHashMap.html

[]´s
Rodrigo

Cara hashMap são conjuntos que não garante a ordem dos elementos. Essa é uma caracteristica de HashMap.

Vc pode usar um TreeMap ele não é ordenado mas pode ser classificado.

Espero ter ajudado.
Boa sorte

Obrigado pessoal, vocês acabaram de me poupar algumas horas quebrando a cabeça com algo que não ia funcionar ^^

[]'s e obrigado novamente!
Rodrigo