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等。

 

posted @ 2021-07-28 10:27  北国浪子  阅读(4490)  评论(0编辑  收藏  举报