<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 功能強大 支持多語言、二開方便! 廣告
                # Java 中`HashMap`和`TreeMap`之間的區別 > 原文: [https://javatutorial.net/difference-between-hashmap-and-treemap-in-java](https://javatutorial.net/difference-between-hashmap-and-treemap-in-java) 在本文中,我將解釋 java [`HashMap`](https://javatutorial.net/java-hashmap-example)和 java [`TreeMap`](https://javatutorial.net/java-treemap-example)之間的區別 盡管兩者都實現了`Map`接口并提供了大多數相同的功能,但是`HashMap`和`TreeMap`具有不同的實現。 最重要的區別是通過條目進行[迭代的順序](https://javatutorial.net/java-iterate-hashmap-example)。 查看下表,直觀了解`HashMap`和`TreeMap`之間的區別 ![Differences between HashMap and TreeMap in Java](https://img.kancloud.cn/ef/72/ef7231450d106ec5cff94def8dd5b2dd_760x352.jpg) Java 中`HashMap`和`TreeMap`之間的區別 ## `HashMap`和`TreeMap`之間的主要區別 `TreeMap`是[`SortedMap`](https://javatutorial.net/java-sortedmap-example)的示例,由紅黑樹實現,這意味著對鍵的順序進行了排序。 遍歷鍵時,您可以依靠它們會井然有序的事實。 鍵的順序由元素的`compareTo()`方法或外部提供的[比較器](https://javatutorial.net/java-comparator-example)確定。 `HashMap`則不做任何保證。 它由哈希表實現。 因此,當迭代`HashMap`的鍵時,您不能確定它們將以什么順序排列。 看下面的例子: ```java package javatutorial.net; import java.util.HashMap; import java.util.Map; import java.util.TreeMap; public class HashMapVsTreeMapExample { public static void main(String[] args) { Map<Integer, String> hMap = new HashMap<Integer, String>(); hMap.put(5, "A"); hMap.put(11, "C"); hMap.put(4, "Z"); hMap.put(77, "Y"); hMap.put(9, "P"); hMap.put(66, "Q"); hMap.put(0, "R"); Map<Integer, String> tMap = new TreeMap<Integer, String>(); tMap.put(5, "A"); tMap.put(11, "C"); tMap.put(4, "Z"); tMap.put(77, "Y"); tMap.put(9, "P"); tMap.put(66, "Q"); tMap.put(0, "R"); System.out.println("HashMap iteration order ======="); for (Map.Entry<Integer, String> entry : hMap.entrySet()) { System.out.println(entry.getKey() + " = " + entry.getValue()); } System.out.println("\nTreeMap iteration order ======="); for (Map.Entry<Integer, String> entry : tMap.entrySet()) { System.out.println(entry.getKey() + " = " + entry.getValue()); } } } ``` 現在看一下該程序的輸出: ```java HashMap iteration order ======= 0 = R 66 = Q 4 = Z 5 = A 9 = P 11 = C 77 = Y TreeMap iteration order ======= 0 = R 4 = Z 5 = A 9 = P 11 = C 66 = Q 77 = Y ``` 如您所見,在`HashMap`上進行迭代時,我們以“隨機”順序獲得條目。 另一方面,`TreeMap `迭代以其自然順序返回條目。 ## 實現復雜度差異 由于`HashMap`實現的復雜度為`O(1)`,因此通常可以認為`HashMap`效率更高,因此無論您何時在乎鍵的順序,都可以使用它。 另一方面,`TreeMap`中獲取,放置和刪除操作的復雜度為 `O(log n)` ## 允許的鍵和值的差異 另一個重要的區別是,`HashMap`允許使用`null`鍵和值,而`TreeMap`僅允許將`null`用作其值。 ## 同步(無差異) 請注意,兩個實現都不同步,這意味著在這些映射上進行操作不是線程安全的。 如果需要線程安全的`Map`,則可能要從`java.util.concurrent`包中選擇`ConcurrentHashMap`類。 這是`Map`的線程安全實現,比`Collections.synchronizedMap(Map<K,V> m)`提供更好的并發性
                  <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>

                              哎呀哎呀视频在线观看