Map集合——Map接口

Map接口的實現類爲HashMap,Map接口定義的集合又稱爲查找表,用於存儲「鍵值對」。Key能夠當作Value的索引,而每每Key是Value的一部份內容。
java

    1)Key、鍵不能夠重複,可是保存的value、值能夠重複。Map接口有不少實現類,有內部爲hash表實現的HashMap和內部爲二叉樹鏈表的TreeMap。一樣這樣的數據接口在存儲數據時,不建議存儲兩種以上的數據類型。因此一般咱們使用Map集合時,也會使用泛型來約束存儲數據的數據類型。
指針

    2)建立Map進行存儲時,這裏要約束兩個類型,一個是Key鍵類型,一個是Value值的類型。
code

    3)HashMap集合中經常使用的方法:
對象

        ①V put(Key,Value):    將元素以Key-Value形式存入到集合中,當存儲內容相同時,則Key相同,替換Key對應的Value值。
繼承

        ②V get(Object Key):返回Key鍵對應的Value值,若是不存在,則返回null;
索引

        ③boolean containsKey(Object Key):判斷集合中是否保存指定的Key。
接口

        ④boolean containsValue(Object value):判斷集合中是否存在指定的value。
get

        ⑤若指定的Key在HashMap集合中不存在,則返回null,原則上,咱們在集合中獲取元素時,首先要判斷集合中是否存在該元素。以後再使用,避免空指針異常出現。Map在獲取元素時有針對性,集合在獲取元素須要遍歷集合內容,而Map不須要,只須要給他指定的Key就能獲取對應的內容。hash

Map<String,Point> map = new HashMap<String,Point>() ;
    map.add("san",new Point(1,2)) ;
    map.add("1,2",new Point(3,4)) ;
    Point p = map.get("san") ;:
    System.out.println("鍵="+p.getX()+"值="+p.getY()) ;
    //添加同Key不一樣Value的對象,將Value替換
    map.add("san",new Point(5,6)) ;
    p = map.get("san") ;
    System.out.println("鍵="+p.getX()+"值="+p.getY()) ;
    //查找集合中不存在Key
    p = map.get("si") ;
    System.out.println("Key="+p.getX()+"Value"=p.getY()) ;

  4)遍歷HashMap方式一:獲取全部的key(迭代Key),並根據key獲取value。從而達到遍歷的效果。keySet()方法:是HashMap獲取全部Key的方法。該方法能夠獲取Map集合中的全部key,並以Set集合的形式返回。io

Map<String,Point> map = new HashMap<String,Point>() ;
map.add("yi",new Point("1,2")) ;
map.add("er",new Point("3,4")) ;
map.add("san",new Point("5,6")) ;
//由於key在HashMap泛型中規定了類型爲String,因此返回的Set類型也爲String,爲了更好的使用,定義set類型變量也加上泛型
Set<String> keySet = map.keySet() ;
for(String str:map.keySet()){
    Point p = map.get(key) ;    //經過Key找到value
    System.out.println("key:"+p.getX()+"value:"+p.getY()) ;
}

    5)List,Set,Map三個接口存儲元素時各自的特色:

        ①List。繼承Collection接口,使用此接口能精確的定位到要插入的位置。用戶可以經過索引來訪問List集合中的元素。

    有序,能夠重複。

        ②Set。繼承Collection接口,無序,不重複,元素惟一值。集合中任意兩個元素都會a.equals(b) = false,Set集合中最少有一個null元素。

        ③Map。沒有繼承Collection接口,Map提供Key——value映射。

相關文章
相關標籤/搜索