Problemas com Map..como inserir o dado na posição que eu quero?

Opa :smiley:

Tenho um HashMap e toda vez que eu insiro um dado, ele acaba colocando em algum ordem determinada por ele e não na ordem que eu inseri. Tem alguma maneira de resolver isso?

Ex.:

  • Se eu inserir um objeto que começa com S e outro que começa com B, ele coloca o do B na posição antes do S e eu não queria isso.

Meu método para preencher o Mapa é este:

	private Map<String, UnidadeBean> unidades = new TreeMap<String, UnidadeBean>();

	public Map<String, UnidadeBean> getUnidades() {
		UnidadeDAO dao = new UnidadeDAO(UnidadeBean.class);
		List<UnidadeBean> resultado = dao.findAll();
		UnidadeBean un = new UnidadeBean();
		un.setNome("Selecione Unidade");
		unidades.put(un.getNome(), un);
		for(UnidadeBean unidade : resultado){
			unidades.put(unidade.getNome(), unidade);
		}
		return unidades;
	}

Cara… o Treemap é ordenado pelo equals hashcode e pelo compareTo, o map não é ordenado pela ordem de inserção não… apenas se você implementar essa funcionalidade… Mas isso é uma caracteristica do List
Mais informações http://www.ticket.t5.com.br/fernandoans/cartoes/FAnsCollection.pdf