JAVA集合——Map介面

woder1發表於2020-11-16

一.Map介面儲存的是 一組成對的鍵(key)和值(value)物件,提供key到value的對映,主要是通過key來進行檢索,因為key的要求是無序但是要唯一,而value也是無序,但是可以重複,所以就只能通過key來進行索引;

二.Map介面的常用方法:

1.新增資料,成對新增Object put (Object key,Object value),這裡的key和value的型別可以為任何型別!

   //Map介面中的key不要求有序,但是不能重複,重複就會被覆蓋;
    //但是Map中的value不要求有序,但是允許重複!
    
    countey.put("CN","中國");
    countey.put("AU","澳大利亞");
    countey.put("JP","日本");
    countey.put("USA","美國");

2.移除與指定key相關的對映

    //刪除某個特定的key所對應的鍵值對
    countey.remove("USA");

3.獲得與key相關的value值,如果沒有則返回null;這裡需要注意的是,因為Map基本上是通過key來遍歷或者查詢value的值,需要把Map中的所有key 放在一起,因為key的特性,所以可以使用前面的Set 來存放一個Map中的所有key:(即 Set keySet() 方法,獲取所有key的集合)

  Set keys=country.ketSet();
  
  //通過key,再結合Object get(Object key);獲得與key相對應的value值;
  //基本上是採用for迴圈的形式來輸出key和value;

三.Map的遍歷有哪幾種:
分析:因為Map中的物件是無序的,所以不能使用一般的for迴圈來進行遍歷。因此可以使用增強型for或者前面提過的 Itrerator(迭代器來進行遍歷);都是通過get(key)獲取value;
注意:無論是增強型for還是Iterrator(迭代器);遍歷的都是Map物件的key值,所以第一步都是獲取所有的key;通過keyset()方法

   增強for:
   Set keys=countey.keySet();
   所有的key放到Set中:
   
    for (Object obj:keys )
    {
        String key=(String )obj;//Map中的每一個key;
        String value=(String)countey.get(key);//Map中的每一個key對應的value;
        System.out.println(key+"-----"+value);
    }
    
 迭代器:
 
   Set keyss=countey.keySet();
   //同上,獲取所有的key的集合;
    Iterator iterator1= keyss.iterator();
    while (iterator1.hasNext()){
       String s= (String)iterator1.next();
        String value=countey.get(s);
        System.out.println(s+"----->"+value);
    }

還有一種就是遍歷Key-value對來進行獲取;主要的方法是map.enteyset()獲取鍵值對,其型別是Map.Entry
再通過getKey()、getValue()獲取對應的陣列,同時要注意型別的轉換;

 Set set1=countey.entrySet();
 
   //entrySet()獲取Map中的鍵值對,因為是鍵值對,包含key和value,其型別為Map.Entry再常用增強for來遍歷鍵值對集合;
   
    for (Object obj:set1
         ) {
        Map.Entry m=(Map.Entry) obj;
        String key=(String)m.getKey();
        直接通過getkey和getvalue來獲取數值;
        String value=(String)m.getValue();
        System.out.println(key+"********"+value);

    }

相關文章