Java TreeMap 類



簡介

Java TreeMap 類是基於紅黑樹實現的 Map 介面。以下是關於 TreeMap 的重要要點:

  • TreeMap 類保證 Map 將按升序鍵排序。

  • Map 根據鍵類的自然排序方法進行排序,或者根據在 Map 建立時提供的 Comparator 進行排序,這將取決於使用哪個建構函式。

類宣告

以下是 java.util.TreeMap 類的宣告:

public class TreeMap<K,V>
   extends AbstractMap<K,V>
   implements NavigableMap<K,V>, Cloneable, Serializable

引數

以下是 java.util.TreeMap 類的引數:

  • K - 這是此 Map 保持的鍵的型別。

  • V - 這是對映值的型別。

類建構函式

序號 建構函式和描述
1

TreeMap()

此建構函式使用其鍵的自然排序構建一個新的空 TreeMap。

2

TreeMap(Comparator<? super K> comparator)

此建構函式根據給定的 Comparator 構建一個新的空 TreeMap。

3

TreeMap(Map<? extends K,? extends V> m)

此建構函式構建一個新的 TreeMap,其中包含與給定 Map 相同的對映,並根據其鍵的自然排序進行排序。

4

TreeMap(SortedMap<K,? extends V> m)

此建構函式構建一個新的 TreeMap,其中包含與指定的已排序 Map 相同的對映,並使用相同的排序。

類方法

序號 方法和描述
1 Map.Entry<K,V> ceilingEntry(K key)

此方法返回與大於或等於給定鍵的最小鍵關聯的鍵值對映,如果不存在此類鍵,則返回 null。

2 K ceilingKey(K key)

此方法返回大於或等於給定鍵的最小鍵,如果不存在此類鍵,則返回 null。

3 void clear()

此方法從此 Map 中刪除所有對映。

4 Object clone()

此方法返回此 TreeMap 例項的淺複製。

5 boolean containsKey(Object key)

此方法如果此 Map 包含指定鍵的對映,則返回 true。

6 boolean containsValue(Object value)

此方法如果此 Map 將一個或多個鍵對映到指定值,則返回 true。

7 NavigableSet<K> descendingKeySet()

此方法返回此 Map 中包含的鍵的反向順序 NavigableSet 檢視。

8 NavigableMap<K,V> descendingMap()

此方法返回此 Map 中包含的對映的反向順序檢視。

9 Set<Map.Entry<K,V>> entrySet()

此方法返回此 Map 中包含的對映的 Set 檢視。

10 Map.Entry<K,V> firstEntry()

此方法返回與此 Map 中的最小鍵關聯的鍵值對映,如果 Map 為空,則返回 null。

11 K firstKey()

此方法返回當前在此 Map 中的第一個(最小)鍵。

12 Map.Entry<K,V> floorEntry(K key)

此方法返回與小於或等於給定鍵的最大鍵關聯的鍵值對映,如果不存在此類鍵,則返回 null。

13 K floorKey(K key)

此方法返回小於或等於給定鍵的最大鍵,如果不存在此類鍵,則返回 null。

14 V get(Object key)

此方法返回指定鍵對映到的值,如果此 Map 不包含該鍵的對映,則返回 null。

15 SortedMap<K,V> headMap(K toKey)

此方法返回此 Map 的一部分的檢視,其鍵嚴格小於 toKey。

16 Map.Entry<K,V> higherEntry(K key)

此方法返回與嚴格大於給定鍵的最小鍵關聯的鍵值對映,如果不存在此類鍵,則返回 null。

17 K higherKey(K key)

此方法返回嚴格大於給定鍵的最小鍵,如果不存在此類鍵,則返回 null。

18 Set<K> keySet()

此方法返回此 Map 中包含的鍵的 Set 檢視。

19 Map.Entry<K,V> lastEntry()

此方法返回與此 Map 中的最大鍵關聯的鍵值對映,如果 Map 為空,則返回 null。

20 K lastKey()

此方法返回當前在此 Map 中的最後一個(最大)鍵。

21 Map.Entry<K,V> lowerEntry(K key)

此方法返回與嚴格小於給定鍵的最大鍵關聯的鍵值對映,如果不存在此類鍵,則返回 null。

22 K lowerKey(K key)

此方法返回嚴格小於給定鍵的最大鍵,如果不存在此類鍵,則返回 null。

23 NavigableSet<K> navigableKeySet()

此方法返回此 Map 中包含的鍵的 NavigableSet 檢視。

24 Map.Entry<K,V> pollFirstEntry()

此方法刪除並返回與此 Map 中的最小鍵關聯的鍵值對映,如果 Map 為空,則返回 null。

25 Map.Entry<K,V> pollLastEntry()

此方法刪除並返回與此 Map 中的最大鍵關聯的鍵值對映,如果 Map 為空,則返回 null。

26 V put(K key, V value)

此方法將指定值與此 Map 中的指定鍵關聯。

27 void putAll(Map<? extends K,? extends V> map)

此方法將指定 Map 中的所有映射覆制到此 Map。

28 V remove(Object key)

如果存在,此方法從此 TreeMap 中刪除此鍵的對映。

29 int size()

此方法返回此 Map 中鍵值對映的數量。

30 SortedMap<K,V> subMap(K fromKey, K toKey)

此方法返回此 Map 的一部分的檢視,其鍵範圍從 fromKey(包含)到 toKey(不包含)。

31 SortedMap<K,V> tailMap(K fromKey)

此方法返回此 Map 的一部分的檢視,其鍵大於或等於 fromKey。

32 Collection<V> values()

此方法返回此 Map 中包含的值的 Collection 檢視。

繼承的方法

此類繼承以下類的 method:

  • java.util.AbstractMap
  • java.util.Object
  • java.util.Map

從 TreeMap 中新增和獲取值的示例

以下示例顯示了 Java TreeMap get() 方法的使用,用於獲取 Map 中與給定鍵關聯的值。我們建立了一個 Integer、Integer 的 TreeMap 物件。然後添加了一些條目,並使用 get() 列印給定鍵的值。

package com.tutorialspoint;

import java.util.TreeMap;

public class TreeMapDemo {
   public static void main(String[] args) {

      // creating tree map 
      TreeMap<Integer, Integer> treemap = new TreeMap<>();

      // populating tree map
      treemap.put(2, 2);
      treemap.put(1, 1);
      treemap.put(3, 3);
      treemap.put(6, 6);
      treemap.put(5, 5);

      System.out.println("Checking value for key 3");
      System.out.println("Value is: "+ treemap.get(3));
   }    
}

讓我們編譯並執行以上程式,這將產生以下結果。

Checking value for key 3
Value is: three
廣告