Map常见的几种遍历方法
Map的遍历方法有很多种,各有优缺点,在实际运用中,我们应选择正确的遍历方法,以免出现不必要的错误。
下面简要介绍常用的几种遍历方法。
公共代码:
1 Map<String, Integer> map = new HashMap<String, Integer>(); 2 map.put("Tom", 22); 3 map.put("David", 20); 4 map.put("Lily", 20); 5 map.put("Lucy", 20); 6 map.put("James", 21); 7 map.put("Jim", 21);
第一种方法:使用for循环的Entry遍历
1 // 最常见的也是最可取的遍历方式,通常在键值都需要时使用。 2 for (Map.Entry<String, Integer> entry : map.entrySet()) { 3 System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 4 }
结果:
第二种方法:使用for循环,按需遍历
1 // 如果只需要map中的键或者值,可以通过keySet或values来实现遍历。 2 // 遍历键 3 for (String key : map.keySet()) { 4 System.out.println("Key = " + key); 5 } 6 // 遍历值 7 for (Integer value : map.values()) { 8 System.out.println("value = " + value); 9 }
结果:
第三种方法:使用Iterator遍历
1 // 使用Iterator遍历 2 Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator(); 3 while (it.hasNext()) { 4 Map.Entry<String, Integer> entry = it.next(); 5 System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 6 }
结果:
第四种方法:先遍历键,然后通过键找值
1 // 通过键找值遍历 2 for (String key : map.keySet()) { 3 Integer value = map.get(key); 4 System.out.println("Key = " + key + ", Value = " + value); 5 }
结果:
总结,第一种方法是最常见的也是最可取的遍历方式,通常在键值都需要时使用;如果仅仅获取Map的键或值时,可以选择第二种方法;当JDK版本较低时,1.5以下,必须选择第三种方法,使用迭代器的遍历;第四种先遍历键,然后通过键找值,效率太低,很少使用。上面的遍历方法也适用于Map的几个实现,比如HashMap、HashTable、TreeMap等。