JAVA之Map集合

Java Map 接口
Map接口中鍵和值一一映射. 可以通過鍵來獲取值。

給定一個鍵和一個值,你可以將該值存儲在一個Map對象. 之後,你可以通過鍵來訪問對應的值。
當訪問的值不存在的時候,方法就會拋出一個NoSuchElementException異常.
當對象的類型和Map裏元素類型不兼容的時候,就會拋出一個 ClassCastException異常。
當在不允許使用Null對象的Map中使用Null對象,會拋出一個NullPointerException 異常。
當嘗試修改一個只讀的Map時,會拋出一個UnsupportedOperationException異常。

JDK 1.8獲取

        Map<String,String> mapp=new HashMap<>();
        mapp.put("TestOne","集合中");


        Map<String,String> map=new HashMap<>();
        //將一個map放入另一個map中
        map.putAll(mapp);
        map.put("mapTestOne","第一個測試");
        map.put("mapTesttwo","第二個測試");
        map.put("mapTestThree","第三個測試");



        //Jdk 1.8  lambda寫法
        mapp.forEach((key,value)->{
            System.out.println(key+"======"+value);
        });

        map.forEach((key,value)->{
            System.out.println(key+"=========="+value);
        });

解釋:用於兩個參數之間進行操作的函數式接口是 BiConsumer。這個函數式接口正好用來操作 Map 的 key 和 value。JDK8強化了針對 Map 類的迭代方式,新增了一個默認方法 forEach,它接收一個 BiConsumer 函數

第一種方法:

       Map<String,String> map=new HashMap<>();
        map.put("mapTestOne","第一個測試");
        map.put("mapTesttwo","第二個測試");
        map.put("mapTestThree","第三個測試");

       for (Map.Entry<String,String> ms: map.entrySet()){
           System.out.println(ms.getKey()+"========="+ms.getValue());
       }

第二種方法

    Map<String,String> map=new HashMap<>();
        map.put("mapTestOne","第一個測試");
        map.put("mapTesttwo","第二個測試");
        map.put("mapTestThree","第三個測試");

       for (Map.Entry<String,String> ms: map.entrySet()){
           System.out.println(ms.getKey()+"========="+ms.getValue());
       }
       
        jian:mapTestThree
        jian:mapTesttwo
        jian:mapTestOne
        值:第三個測試
        值:第二個測試
        值:第一個測試

第三種方法:

 Map<String,String> map=new HashMap<>();
        map.put("mapTestOne","第一個測試");
        map.put("mapTesttwo","第二個測試");
        map.put("mapTestThree","第三個測試");




        Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator();
        while(entries.hasNext()){
            Map.Entry<String, String> entry = entries.next();
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+":"+value);
        }
    }
    
    

API

序號 方法描述
1 void clear( ) 從此映射中移除所有映射關係(可選操作)。
2 boolean containsKey(Object k) 如果此映射包含指定鍵的映射關係,則返回 true。
3 boolean containsValue(Object v) 如果此映射將一個或多個鍵映射到指定值,則返回 true。
4 Set entrySet( )返回此映射中包含的映射關係的 Set 視圖。
5 boolean equals(Object obj)比較指定的對象與此映射是否相等。
6 Object get(Object k)返回指定鍵所映射的值;如果此映射不包含該鍵的映射關係,則返回 null。
7 int hashCode( )返回此映射的哈希碼值。
8 boolean isEmpty( )如果此映射未包含鍵-值映射關係,則返回 true。
9 Set keySet( )返回此映射中包含的鍵的 Set 視圖。
10 Object put(Object k, Object v) 將指定的值與此映射中的指定鍵關聯(可選操作)。
11 void putAll(Map m) 從指定映射中將所有映射關係複製到此映射中(可選操作)。
12 Object remove(Object k) 如果存在一個鍵的映射關係,則將其從此映射中移除(可選操作)。
13 int size( ) 返回此映射中的鍵-值映射關係數。
14 Collection values( )返回此映射中包含的值的 Collection 視圖。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章