<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[info] 在讀此節前,建議先看看:[深入淺出學Java—HashMap](https://blog.csdn.net/woshimaxiao1/article/details/83661464) > 提示:沒必要精通,懂HashMap的基本原理即可 ## **Map常用的有HashMap(LinkedHashMap )、TreeMap,其大致一樣** ~~~ import java.util.*; public class Map { public static void mapTest(){ /** * HashMap、TreeMap兩種Map儲存數據結構不一樣,但是存儲的數據是一樣的,可以通過去掉注釋來切換 * 其中: * HashMap 不一定會按照放進去的順序排序 * TreeMap 會按照Key進行排序 * LinkedHashMap 會按照放進去的順序排序,因為他是一個鏈表 * */ // HashMap<String, String> map = new HashMap <>(); // HashMap以以下順序輸出:{張三=湖北武漢, 大西=黑龍江哈爾濱, 小明=廣州中山, 小張=北京海淀} // 沒有順序 //TreeMap <String, String> map = new TreeMap <>(); // TreeMap以以下順序輸出:{大西=黑龍江哈爾濱, 小張=北京海淀, 小明=廣州中山, 張三=湖北武漢} // 排序方法是key的 A-Z LinkedHashMap<String, String> map = new LinkedHashMap <>(); // LinkedHashMap以以下順序輸出:{小明=廣州中山, 小張=北京海淀, 大西=黑龍江哈爾濱, 張三=湖北武漢} // 順序是我們放進去的順序 // tip:Map中的key值是唯一的,如果放相同key的數據則會復寫 map.put("小明", "廣州中山"); map.put("小張", "北京海淀"); map.put("大西", "黑龍江哈爾濱"); map.put("張三", "湖北武漢"); /** * 一樣的方法(Api) */ System.out.println(map); // 通過Key取值 String value = map.get("小明"); System.out.println(value); // 判斷是否有某個key boolean isSet = map.containsKey("小李"); System.out.println(isSet); // 判斷是否有某個value isSet = map.containsValue("廣州中山"); System.out.println(isSet); // 獲取map長度 int size = map.size(); System.out.println(size); // 獲取map所有的key Set <String> allKeys = map.keySet(); System.out.println(allKeys); // 獲取map所有的value Collection <String> allValues = map.values(); System.out.println(allValues); // 這個較難:把map轉換為entrySet數據格式 Set<java.util.Map.Entry<String ,String >> entrySet = map.entrySet(); System.out.println(entrySet); for (java.util.Map.Entry entry: entrySet){ System.out.println("key = " + entry.getKey() + ";value = " + entry.getValue()); } // 清除Map里的內容 map.clear(); System.out.println(map); } } ~~~ <br/> ## **我們如何選擇使用哪種Map的數據結構?** * HashMap可以實現快速存儲和檢索,但缺點是包含的數據是無序的,適用于在Map中插入、刪除和定位元素,**如果對數據順序沒有要求的話可以優先使用HashMap**; * TreeMap可以實現內部元素的排序,但性能比HashMap更差,適用于輸出按照排序的數據體。 * JDK1.7和1.8中HashMap的區別: * 底層實現由 “數組+鏈表” 改為 “數組+鏈表+紅黑樹” * 當鏈表節點較少時仍以鏈表存在,鏈表節點較多時,會轉為紅黑 ~~~java 摘自:java.util.HashMap#TREEIFY_THRESHOLD /** * The bin count threshold for using a tree rather than list for a * bin. Bins are converted to trees when adding an element to a * bin with at least this many nodes. The value must be greater * than 2 and should be at least 8 to mesh with assumptions in * tree removal about conversion back to plain bins upon * shrinkage. */ static final int TREEIFY_THRESHOLD = 8; ~~~
                  <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>

                              哎呀哎呀视频在线观看