Es gibt mehrere Möglichkeiten, über die Karte zu iterieren.
Hier ist ein Vergleich ihrer Leistungen für einen gemeinsamen Datensatz, der in map gespeichert ist, indem eine Million Schlüssel-Wert-Paare in map gespeichert werden und über map iteriert wird.
1) Verwendung entrySet()
in der for each-Schleife
for (Map.Entry<String,Integer> entry : testMap.entrySet()) {
entry.getKey();
entry.getValue();
}
50 Millisekunden
2) Verwendung keySet()
in der for each-Schleife
for (String key : testMap.keySet()) {
testMap.get(key);
}
76 Millisekunden
3) Verwendung entrySet()
und Iterator
Iterator<Map.Entry<String,Integer>> itr1 = testMap.entrySet().iterator();
while(itr1.hasNext()) {
Map.Entry<String,Integer> entry = itr1.next();
entry.getKey();
entry.getValue();
}
50 Millisekunden
4) Verwendung keySet()
und Iterator
Iterator itr2 = testMap.keySet().iterator();
while(itr2.hasNext()) {
String key = itr2.next();
testMap.get(key);
}
75 Millisekunden
Ich habe auf this link
.
46 Stimmen
In Java 8 mit Lambda-Ausdruck: stackoverflow.com/a/25616206/1503859
5 Stimmen
Java 8: stackoverflow.com/questions/46898/