经常会看到大家在遍历map集合的时候,就去百度。其实我也是如此。我们去百度,不是因为我们不会,而是平时map用的次数不像if、for那么多,以致于写起来还不是很顺手!为了以后写的顺手起来,觉得有必要对map遍历做个小结!
遍历map无非就那么三种方法(遍历出所有的key-value):通过key找value遍历、在for-each循环中使用entries来遍历、使用Iterator遍历(经多次测试效率最高)!
第一种:通过key找value遍历map
public static void traversalMap1(Map<String,Object> map) {
long startTime = System.currentTimeMillis();
for (String key : map.keySet()) {
Object value = map.get(key);
System.out.println("key:" + key + "|value:" + value);
}
long endTime = System.currentTimeMillis();
System.out.println("通过key找value遍历用时:" + (endTime - startTime));
}
第二种:在for-each循环中使用entries来遍历map
public static void traversalMap3(Map<String,Object> map) {
long startTime = System.currentTimeMillis();
for (Entry<String, Object> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
long endTime = System.currentTimeMillis();
System.out.println("通过key找value遍历用时:" + (endTime - startTime));
}
第三种:使用Iterator遍历
public static void traversalMap2(Map<String,Object> map) {
long startTime = System.currentTimeMillis();
Iterator<Entry<String, Object>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Entry<String, Object> entry = entries.next();
System.out.println("key:" + entry.getKey() + "|value:" + entry.getValue());
}
long endTime = System.currentTimeMillis();
System.out.println("通过key找value遍历用时:" + (endTime - startTime));
}
工作上几年会发现,代码其实大家都会写!这时候就会用速度、效率、质量来衡量我们的实力!