Существует несколько способов перебора карты.
Здесь приводится сравнение их характеристик для общего набора данных, хранящегося на карте, путем сохранения миллиона пар значений ключей на карте и повторения по карте.
1) Использование entrySet()
для каждой петли
for (Map.Entry<String,Integer> entry : testMap.entrySet()) {
entry.getKey();
entry.getValue();
}
50 миллисекунд
2) Использование keySet()
в каждом цикле
for (String key : testMap.keySet()) {
testMap.get(key);
}
76 миллисекунд
3) Использование entrySet()
и итератор
Iterator<Map.Entry<String,Integer>> itr1 = testMap.entrySet().iterator();
while(itr1.hasNext()) {
Map.Entry<String,Integer> entry = itr1.next();
entry.getKey();
entry.getValue();
}
50 миллисекунд
4) Использование keySet()
и итератора
Iterator itr2 = testMap.keySet().iterator();
while(itr2.hasNext()) {
String key = itr2.next();
testMap.get(key);
}
75 миллисекунд
Я сослался this link
.