Collection - HashMap

3 respostas
ECO2004

O meu HashMap deveria imprmir em ordem diferente da ordem de entrada, mas a ordem é sempre a mesma, como se eu estivesse usando um LinkedHashMap.

Por que isso está acontecendo?

package com.map;

import java.util.Map;
import java.util.HashMap;

public class CollectionHashMap 
{
	public static void show(Map<Integer, String> map)
	{
		for(Map.Entry<Integer, String> e : map.entrySet())
		{
			System.out.println(e.getKey()+":"+e.getValue());
		}		
	}

	public static void main(String[] args) 
	{
		Map<Integer, String> map = new HashMap<Integer, String>();
		
		map.put(1, "A");
		map.put(2, "B");
		map.put(3, "C");
		map.put(4, "D");

		show(map);
	}

}

3 Respostas

M

Amigo, acredito que isto está acontecendo porque tem pouco registros.

Mas vou fazer um teste aqui para verificar se não é a chave do tipo Integer que causou isso.

Logo posto aqui

M

Bom, eu fiz o seguinte teste aqui

public static void show(Map&lt;Integer, String&gt; map) {
        for (Map.Entry&lt;Integer, String&gt; e : map.entrySet()) {
            System.out.println(e.getKey() + ":" + e.getValue());
        }
    }

    public static void main(String[] args) {
        Map&lt;Integer, String&gt; map = new HashMap&lt;Integer, String&gt;();

        for (int i = 0; i &lt; 1000; i++) {
            map.put(i, "A"+i);
        }

        show(map);
    }

No meu teste, apartir do 15, já saiu de ordem.

Boa sorte

ECO2004

@Murilo

Obrigado!

Criado 26 de novembro de 2011
Ultima resposta 26 de nov. de 2011
Respostas 3
Participantes 2