package study.java.collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MapIteratorCompare {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
for(int i=0;i<1000000;i++) {
map.put(i+"", "value"+i);
}
long startTime2 = System.currentTimeMillis();
Iterator<String> keySetI = map.keySet().iterator();
while(keySetI.hasNext()) {
String key = keySetI.next();
String value = map.get(key);
}
System.out.println("通过KeySet遍历耗时:" + (System.currentTimeMillis() - startTime2) + "ms");
long startTime1 = System.currentTimeMillis();
Iterator<Map.Entry<String, String>> entrySetI = map.entrySet().iterator();
while(entrySetI.hasNext()) {
Map.Entry<String, String> entry = entrySetI.next();
String key = entry.getKey();
String value = entry.getValue();
}
System.out.println("通过EntrySety遍历耗时:" + (System.currentTimeMillis() - startTime1) + "ms");
//测试结果:map元素1000000时,entrySet更快
//通过KeySet遍历耗时:54ms
//通过EntrySety遍历耗时:37ms
}
}