Dado el siguiente código, con dos formas alternativas de recorrerlo,
¿hay alguna diferencia de rendimiento entre estos dos métodos?Java: iteración a través de HashMap, ¿qué es más eficiente?
Map<String, Integer> map = new HashMap<String, Integer>();
//populate map
//alt. #1
for (String key : map.keySet())
{
Integer value = map.get(key);
//use key and value
}
//alt. #2
for (Map.Entry<String, Integer> entry : map.entrySet())
{
String key = entry.getKey();
Integer value = entry.getValue();
//use key and value
}
me inclino a pensar que es alt. #2
los medios más eficientes de iteración a través de toda la map
(pero podría estar equivocado)
¿Qué tan grande es el mapa? Esto huele a una optimización prematura. –
@Matt Lo pregunto porque tengo varios de ellos, y son enormes, generalmente con elementos de 10K-100K; ¡Definitivamente hay un buen caso para la optimización! – bguiz
Actualización: muchas respuestas parecen pensar que se trata de una optimización prematura. Tenga en cuenta que lo anterior es de hecho un SSCCE (http://sscce.org/), ¡y no el código real que estoy buscando optimizar! – bguiz