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