Referenz: https://qiita.com/kei2100/items/0ce97733c92fdcb9c5a9
Ich habe beim Abrufen eines Werts aus HashMap keySet () verwendet, aber ich habe gehört, dass die Verwendung von entrySet () schneller ist, also habe ich es überprüft.
java
import java.util.HashMap;
import java.util.Map.Entry;
public class HashmapentrySetAndkeySet {
public static void main(String[] args) {
HashMap<Integer,Integer> map = new HashMap<>();
//Karte erstellen
for(int i=0; i<1000; i++){
map.put(i,i);
}
//Versuchen Sie, auf zwei Arten auszugeben
//keySet()Methode mit
long start1 = System.currentTimeMillis();
for(Integer key : map.keySet()){
Integer value = map.get(key);
//System.out.println(value);
}
long end1 = System.currentTimeMillis();
System.out.println((end1-start1)+"ms");
//entrySet()Methode mit
long start2 = System.currentTimeMillis();
for(Entry<Integer, Integer> entry : map.entrySet()){
Integer value = entry.getValue();
//System.out.println(value);
}
long end2 = System.currentTimeMillis();
System.out.println((end2-start2)+"ms");
}
}
Mit der Methode zur Verwendung von keySet () und der Methode zur Verwendung von entrySet () zum Zuweisen von 1000 HashMaps ist die Verwendung von entrySet () auf meinem PC etwa 1 ms schneller. Der Unterschied vergrößerte sich, wenn die Standardausgabe verwendet wurde.
Die Schwierigkeit ist, dass es schwer zu lesen ist. Machen Sie sich eine Notiz, damit Sie in Zukunft mit dieser Methode schreiben können.
Recommended Posts