Java中Map集合的遍历方式

方法一:在for-each循环中使用entries来遍历

1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
2   
3 for (Map.Entry<Integer, Integer> entry : map.entrySet()) {  
4   
5     System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
6   
7 }  

方法二:使用Iterator遍历

 1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
 2 
 3 Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
 4 
 5 while (entries.hasNext()) {
 6 
 7     Map.Entry<Integer, Integer> entry = entries.next();
 8 
 9     System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
10 
11 }

该方法还设计到一种设计模式,即迭代模式。该方法可以在遍历时调用iterator.remove()来删除entries。

也可以不加入泛型:

 1 Map map = new HashMap();
 2 
 3 Iterator entries = map.entrySet().iterator();
 4 
 5 while (entries.hasNext()) {
 6 
 7     Map.Entry entry = (Map.Entry) entries.next();
 8 
 9     Integer key = (Integer)entry.getKey();
10 
11     Integer value = (Integer)entry.getValue();
12 
13     System.out.println("Key = " + key + ", Value = " + value);
14 
15 }

方法三 通过键集合遍历值

1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
2 
3 for (Integer key : map.keySet()) {
4 
5     Integer value = map.get(key);
6 
7     System.out.println("Key = " + key + ", Value = " + value);
8 
9 }

该方法效率很低,不推荐使用

方法四 values()方法

 1 Map<Integer, Integer> map = new HashMap<Integer, Integer>();
 2 
 3 
 4 for (Integer key : map.keySet()) {
 5 
 6     System.out.println("Key = " + key);
 7 
 8 }
 9 
10 for (Integer value : map.values()) {
11 
12     System.out.println("Value = " + value);
13 
14 }

 

posted @ 2016-09-13 15:54  ClubHouse  阅读(497)  评论(1编辑  收藏  举报