1. 程式人生 > >Map集合遍歷的四種方式理解和簡單使用-----不能for循環遍歷

Map集合遍歷的四種方式理解和簡單使用-----不能for循環遍歷

src 理解 version class post oid 循環 2017年 col

~Map集合是鍵值對形式存儲值的,所以遍歷Map集合無非就是獲取鍵和值,根據實際需求,進行獲取鍵和值

1:無非就是通過map.keySet()獲取到值,然後根據鍵獲取到值

  for(String s:map.keySet()){
System.out.println("key : "+s+" value : "+map.get(s));
}

2:通過Map.Entry(String,String) 獲取,然後使用entry.getKey()獲取到鍵,通過entry.getValue()獲取到值

  for(Map.Entry<String, String> entry : map.entrySet()){
System.out.println("鍵 key :"+entry.getKey()+" 值value :"+entry.getValue());
}

3:其中通過Iterator也是為了最終獲得entry,所以理解其用法,可以很好的使用和掌握

技術分享圖片
 1 package com.bie;
 2 
 3 import java.util.HashMap;
 4 import java.util.Iterator;
 5 import java.util.Map;
 6 
 7 /** 
 8 * @author BieHongLi 
 9 * @version 創建時間:2017年2月25日 下午8:58:54 
10 * 
11 */
12 public class MapTest01 {
13 
14     public static void main(String[] args) {
15         Map<String, String> map=new HashMap<String, String>();
16         map.put("張三1", "男");
17         map.put("張三2", "男");
18         map.put("張三3", "男");
19         map.put("張三4", "男");
20         map.put("張三5", "男");
21         
22         //第一種遍歷map的方法,通過加強for循環map.keySet(),然後通過鍵key獲取到value值
23         for(String s:map.keySet()){
24             System.out.println("key : "+s+" value : "+map.get(s));
25         }
26         System.out.println("====================================");
27         
28         //第二種只遍歷鍵或者值,通過加強for循環
29         for(String s1:map.keySet()){//遍歷map的鍵
30             System.out.println("鍵key :"+s1);
31         }
32         for(String s2:map.values()){//遍歷map的值
33             System.out.println("值value :"+s2);
34         }
35         System.out.println("====================================");    
36         
37         //第三種方式Map.Entry<String, String>的加強for循環遍歷輸出鍵key和值value
38         for(Map.Entry<String, String> entry : map.entrySet()){
39             System.out.println("鍵 key :"+entry.getKey()+" 值value :"+entry.getValue());
40         }
41         System.out.println("====================================");
42         
43         //第四種Iterator遍歷獲取,然後獲取到Map.Entry<String, String>,再得到getKey()和getValue()
44         Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();
45         while(it.hasNext()){
46             Map.Entry<String, String> entry=it.next();
47             System.out.println("鍵key :"+entry.getKey()+" value :"+entry.getValue());
48         }
49         System.out.println("====================================");
50         
51     }
52     
53     
54 }
技術分享圖片

4:Map的一些常用的知識點,和取值的變形形式,都需要掌握和了解

技術分享圖片
 1 package com.bie;
 2 
 3 import java.util.Collection;
 4 import java.util.HashMap;
 5 import java.util.Map;
 6 import java.util.Set;
 7 
 8 /** 
 9 * @author BieHongLi 
10 * @version 創建時間:2017年2月26日 上午11:29:59 
11 * 
12 */
13 public class MapTest02 {
14 
15     public static void main(String[] args) {
16         //1:key,value都是object類型的
17         //2:key必須是唯一的,不唯一,那麽後面的value會把前面的value覆蓋
18         //3:對於HashMap,key可以為空
19         //4:value可以為空,也可以為空
20         //5:HashTable的key和value不能為空
21         //6:properties的key和value必須為String類型的
22         Map<String , String> map=new HashMap<>();
23         map.put("null", "this is null 1");
24         map.put("null", "this is null 2");
25         System.out.println(map.size());
26         System.out.println(map.get(null));
27         
28         System.out.println("=============================");
29         //循環顯示map類型的key以及對應的value
30         //三個集合,key的集合,value的集合,鍵值對的集合
31         Set<String> keys=map.keySet();
32         for(String s:keys){
33             System.out.println(s);
34         }
35         System.out.println("=============================");
36         Collection<String> values=map.values();//值的集合
37         System.out.println(values);
38         System.out.println("=============================");
39         Set<Map.Entry<String, String>> entrys=map.entrySet();//鍵值對的集合
40         for(Map.Entry<String, String> entry:entrys){
41             System.out.println(entry.getKey()+" "+entry.getValue());
42         }
43         
44     }
45 }
技術分享圖片

Map集合遍歷的四種方式理解和簡單使用-----不能for循環遍歷