map

概述:
    1.鍵值對,key-value,具有映射關係的數據
    2.Map的key不允許重複,value可以重複
    3.Map裏的key類似一個Set,甚至可以通過map.keySet()拿到key的Set集合
    4.Map裏的value類似一個List,只不過索引不再是數字,而是任意類型
    5.相關類:HashMap、Hashtable(t就是小寫 不是寫錯了~)、LinkedHashMap、Properties、TreeMap
    6.HashMap和Hashtable
       1.HashMap(線程不安全)、Hashtable(線程安全),所以不考慮同步問題的時候HashMap性能好些
       2.Hashtable不允許null,HashMap key-value 均允許null的存在
    7.LinkedHashMap遍歷順序與插入順序一致,而HashMap不能保證順序(不是按照添加先後遍歷的)
    8.Properties用來讀取屬性文件的類,它繼承自Hashtable
    9.TreeMap的操作類似TreeSet 請參見《JAVA基礎 之 Set》一文,活參看java api,這裏不再贅述
[java]  
package com.cxy.collection;  
  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.util.Collection;  
import java.util.Comparator;  
import java.util.HashMap;  
import java.util.Map;  
import java.util.Properties;  
import java.util.Set;  
import java.util.TreeMap;  
  
/** 
 * @author cxy 
 */  
public class MapTest  
{  
    public static void main(String[] args) throws Exception  
    {  
        Map<String,String> m=new HashMap();  
        m.put("姓名", "cxy");  
        m.put("性別", "男");  
        m.put("郵箱", "[email protected]");  //當key不存在於Map的時候put方法可以看作是新增  
        m.put("郵箱", "[email protected]");  //當key存在於Map的時候put方法可以看作是更新  
        m.put(null, null); //HashMap key-value 均允許null的存在  
        System.out.println(m);  
        System.out.println("============================");  
          
        System.out.println("m的key中是否包含'姓名'? 答:"+m.containsKey("姓名"));  
        System.out.println("m的value中是否包含'女'? 答:"+m.containsValue("女"));  
        System.out.println("郵箱是:"+m.get("郵箱")); //使用get方法通過key找到value  
        System.out.println("m是否爲空?答:"+m.isEmpty());  
        System.out.println("m大小?答:"+m.size());  
        System.out.println("============================");  
          
        //通過keySet方法取到Map對象的key的Set集合  
        Set<String> ms=m.keySet();  
        System.out.print("m的鍵(key)有:");  
        for(String one :ms)  
        {  
            System.out.print(one+"  ");  
        }  
        System.out.println("");  //保持格式無實際用處  
        System.out.println("============================");  
          
        m.put("描述", "性別男,愛好女");  
        System.out.println(m);  
        m.remove("描述");  //通過key刪除對應的鍵值對  
        m.remove(null);  
        System.out.println(m);  
        System.out.println("============================");  
          
        Collection<String> vs= m.values();  
        System.out.print("m的值(value)有:");  
        for(String one :vs)  
        {  
            System.out.print(one+"  ");  
        }  
        System.out.println("");  //保持格式無實際用處  
        System.out.println("============================");  
          
        m.clear(); //清空數據  
        System.out.println(m);  
        System.out.println("============================");  
          
        Properties p=new Properties();  
        p.setProperty("username", "cxy");  
        p.setProperty("password", "123");  
        p.store(new FileOutputStream("d://cxytest.ini"), "機密");  //將屬性寫入ini文件,註釋是機密  
        //創建另一個Properties對象去加載剛纔生成的ini文件  
        Properties p1=new Properties();  
        p1.load(new FileInputStream("d://cxytest.ini"));  
        System.out.println(p1);  
        System.out.println("============================");  
          
        TreeMap tm = new TreeMap();  
        tm.put("b", "234");  
        tm.put("a", "123");  
        tm.put("c", "456");  
        System.out.println(tm);  
        System.out.println("============================");  
    }  
}  
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章