Map集合遍歷的四種方式理解和簡單使用-----不能for循環遍歷
阿新 • • 發佈:2018-02-06
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循環遍歷