Android Map類的使用方法


在Android系統中,有着多種存儲數據的方式,例如,文件、數據庫及程序內參數式存儲、網絡存儲等。對於參數式存儲時,使用的就是Map類。Map本身是Interface,Java基於該接口實現三個具體的Map類,分別是HashMap、TreeMap,以及EnumMap,常用的為HashMap,本文也主要介紹HashMap。

Map定義了訪問特定集合的標准方法,這種集合用來存儲key-value類型的鍵值對,比如,對於name:Haiii和 age:22這兩組數據來講,其中name、age稱為鍵(key),與此對應的是鍵值(value)。在一個Map集合類中,每對鍵或值其類型都可以是 任意的,比如int、String等都是可以的。

Map類又是一個類模板,一個Map類對象在初始化時必須指定鍵的類型,可以是任何Object類,比如,Map<String,Object> mMap= new HashMap<String,Object>()。

<>里面的數據類型用於指定Map集合中“鍵值對”的類型。

給Map集合添加和刪除鍵值對的方法如表1-1所示。

表1-1 Map集合添加和刪除鍵值對的方法

 方法  描述
 clear()  刪除該Map集合中的全部元素
 remove(Objectkey)  刪除鍵名為key所對應的鍵值對
 put(Objectkey,Objectvalue)  添加一個新的鍵值對
 putAll(Mapmap)  將該Map集合的元素全部復制到新的Map中

Map類沒有提供直接遍歷鍵值對的方法,要遍歷所有鍵值對需要一個中間過程。Map提供了3個方法用於間接遍歷鍵值對,如下:

·entrySet() 返回所有鍵值對類型為Set對象。

·keySet() 返回所有鍵值對類型為Set對象。

·valueSet() 返回所有鍵值對類型為Collection對象。

要得到具體的鍵值對,需要再解析Set和Collection對象,但僅有這兩個對象還不能獲得鍵值對,還需要借助於Iterator類。到這里,可能覺得有些復雜,別着急,結果馬上就要出來了。

Set、Collection、Iterator實際上是Map內部進行操作的3個輔助類,要得到具體Map鍵值對,如代碼清單1-1所示。

代碼清單1-1 得到具體的Map鍵值對

Map<String,Object> mMap = new HashMap<String,Object>();

    Iterator kv = mMap.entrySet().iterator();
    Iterator k = mMap.keySet().iterator();
    Iterator v = mMap.values().iterator();

    Int size = mMap.size();
    for(int i = 0;i<size;i++)
    {
        Map.Entryentry = (Map.Entry)kv.next();
        Object key = entry.getKey();
        Object value = entry.getValue();
    }

用以上代碼讀取鍵值對時,Object可以強制轉換為int類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM