// 存 5百万个数据
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < 5000000; i++) {
Integer v = (int) Math.random() * 50;
map.put("key:" + i, v);
}
四种遍历方式分别是
1、map.keySet() *效率最慢
for (String ele : map.keySet()) {
map.get(ele);
}
2、map.values() *只能获取到value,无法得到key;
for (Integer ele : map.values()) {
System.out.println(ele);
}
3、map.entrySet() *其他三种效率差不多。但是推荐使用entrySet 效率高,可以同时拿到key,value,而且写法简洁
for (Map.Entry<String, Integer> ele : map.entrySet()) {
System.out.println(ele.getKey());
System.out.println(ele.getValue());
}
4、Iterator() 有两种方式 一种是 根据 entrySet()进行 iterator ,第二种是根据 keySet()进行iterator
第一种
Iterator<Map.Entry<String, Integer>> ele = map.entrySet().iterator();
while(ele.hasNext()){
Map.Entry entry = (Map.Entry) ele.next();
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
第二种
Iterator<String> it = map.keySet().iterator();
while (it.hasNext()){
System.out.println(map.get(it.next()));
}