天天看點

周遊Map集合的三種方式(最強官方版本)

方法1 for增強型

package com.MapDemo;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 * 
 * @author
 * 存儲國家英文簡稱 國家全稱|(鍵--值對)
 * */
public class MapDemo {
  public static void main(String[] args) {
    
    Map countries = new HashMap();
    
    //往map 集合中添加鍵值對
    countries.put("CN", "中華人民共和國");
    countries.put("RU", "俄羅斯聯邦");
    countries.put("FR", "法蘭西共和國");
    countries.put("US", "美利堅衆合國");
    
    //擷取 Map中的元素個數
    System.out.println(countries.size());
    
    //通過某個鍵 擷取對應的值
    String cnStr =(String) countries.get("CN");
    System.out.println(cnStr);
    
    
    //判斷 map中是否包含某個鍵
    boolean flag  = countries.containsKey("US");
    System.out.println("集合中是否包含US?"+flag);
    
    
    //删除特定鍵的鍵值對
    countries.remove("US");
    System.out.println(countries.size());
    
    flag = countries.containsKey("US");
    System.out.println("集合中是否包含US?"+flag);
    
    
    //分别顯示map 中鍵集  值集 和鍵值對集 
    System.out.println(countries.keySet());//顯示鍵集
    System.out.println(countries.values());//顯示值集
    System.out.println(countries);//顯示鍵值對集 
    
    
    
//    //清空
//    countries.clear();
//    if(countries.isEmpty()) {
//      System.out.println("Map資料已清空!");
//      
//    }
    
    
    System.out.println("------------分别擷取map中的  鍵 和 值---------------");
    //思路1: 先擷取到每個key,然後根據key拿到 相應的Value
       Set    keys   =  countries.keySet();
       System.out.println("------------方法1使用for增強型---------------"); 
     //使用增強型for拿到每個key
       for (Object obj : keys) {
         String key   =(String) obj;
         String value = (String) countries.get(key);
         System.out.println(key+"-"+value);
       }
    
       System.out.println("------------方法2使用疊代器---------------");
       Iterator itor = keys.iterator();
       while(itor.hasNext()) {
         String key= (String) itor.next();
         String value = (String) countries.get(key);
         System.out.println(key+"-"+value);
         
       }
       
       System.out.println("思路二-------先拿到map中鍵值對,然後在每個鍵值對中分别取出鍵和值");
       //思路二: 先拿到map中鍵值對,然後在每個鍵值對中分别取出鍵和值
       Set ms =   countries.entrySet(); //map中所有鍵值對得到集合
       for(Object obj :ms) {
         Map.Entry me =(Entry) obj; //map中的每一個鍵值對
         Object key   =me.getKey();  //取出每個鍵值對中的鍵
         Object value =me.getValue();  //取出每個鍵值對中的值
         System.out.println((String)key+"-"+(String)value);
       }
  }

}