<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[success] # java.util.Map ![](https://img.kancloud.cn/11/85/11851ea349624a042fc85d13c9f78c72_675x312.png) 1. `java.util.Map<K,V>`集合中存取元素的基本單位是:單對元素,其中類型參數如下: * **K** - 此映射所維護的鍵(Key)的類型,相當于目錄。 * **V** - 映射值(Value)的類型,相當于內容。 2. 該集合中**key是不允許重復**的,而且**一個key只能對應一個value** 3. **主要實現**類有:`HashMap`類、`TreeMap`類、`LinkedHashMap`類、`Hashtable`類、`Properties`類 * **HashMap類**的底層是采用**哈希表進行數據管理**的 * **TreeMap類**的底層是采用**紅黑樹進行數據管理**的 * **LinkedHashMap類**內部維護了一個**雙向鏈表**,鏈表中記錄了元素的迭代順序,也就是元素插入集合中的先后順序,因此便于迭代 * **Hashtable類**與**HashMap類**相比屬于**線程安全**的類,且**不允許null作為key或者value的數值** * **Properties類是Hashtable類的子類**,該對象用于處理屬性文件,key和value都是String類型的 4. **Map集合是面向查詢優化的數據結構, 在大數據量情況下有著優良的查詢性能** 5. 經常用于根據**key檢索value**的業務場景 >[danger] ##### 常用方法 |方法聲明 |功能介紹| | -- |--| |V put(K key, V value)| 將Key-Value對存入Map,若集合中已經包含該Key,則替換該Key所對應的Value,返回值為該Key原來所對應的Value,若沒有則返回null| |V get(Object key) |返回與參數Key所對應的Value對象,如果不存在則返回null| |boolean containsKey(Object key);|判斷集合中是否包含指定的Key| |boolean containsValue (Object value);|判斷集合中是否包含指定的Value| |V remove(Object key) |根據參數指定的key進行刪除| |Set keySet() |返回此映射中包含的鍵的Set視圖| |Collection values()| 返回此映射中包含的值的Set視圖| |Set<Map.Entry<K,V>> entrySet()| 返回此映射中包含的映射的Set視圖| ~~~ import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapTest { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); // put 添加元素 String str = map.put("1", "11"); System.out.println(str); // null 如果添加key 不存在怎返回null map.put("2", "22"); map.put("3", "33"); System.out.println(map); // {1=11, 2=22, 3=33} 自動調用toString 方法 // 修改元素 str = map.put("2", "6666"); // 如果key 存在則修改 System.out.println(str); // 22 key 存在獲取修改前的對應value 值 System.out.println(map); // {1=11, 2=6666, 3=33} 自動調用toString 方法 // containsKey 查找map中 key 是否存在 boolean b1 = map.containsKey("1"); System.out.println(b1); // true // containsValue 查找map中 value 是否存在 b1 = map.containsValue("1"); System.out.println(b1);// false // get 根據key 獲取value String val = map.get("1"); System.out.println(val); // 11 val = map.get("123"); System.out.println(val); // null 查找的值不存在 // 刪除元素 str = map.remove("1"); System.out.println("被刪除的value是:" + str); // 被刪除的value是:11 System.out.println("map = " + map); // map = {2=6666, 3=33} // keySet 獲取所有key - 遍歷所有key Set<String> keys = map.keySet(); for (String key : keys) { System.out.println(key); // 2 3 } // 獲取所有value - 打印所有value Collection<String> co = map.values(); for (String ts : co) { System.out.println("ts = " + ts); // ts = 6666 ts = 33 } // entrySet 獲取鍵值對 Set<Map.Entry<String, String>> entries = map.entrySet(); for (Map.Entry<String, String> me : entries) { System.out.println(me); // 2=6666 3=33 } } } ~~~ >[danger] ##### 原理 1. 使用元素的**key調用hashCode方法獲取對應的哈希碼值**,再由某種哈希算法計算在數組中的索引位置。 2. 若該位置**沒有元素**,則將該鍵值對直接放入即可。 3. 若該位置**有元素**,則使用key與已有元素依次比較哈希值,若哈希值不相同,則將該元素直接放入。 4. 若key與**已有元素的哈希值相同**,則使用key調用equals方法與已有元素依次比較。 5. 若**相等**則將對應的value修改,否則將鍵值對直接放入即可
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看