📜  Java TreeMap类(1)

📅  最后修改于: 2023-12-03 14:42:16.938000             🧑  作者: Mango

Java TreeMap类介绍

Java TreeMap类是一种基于红黑树(Red-Black tree)的有序映射表,其元素按照键的自然顺序或者特定的排序规则进行排序。

TreeMap类常用方法
  • TreeMap():构造一个新的、空的树映射表。它根据键的自然顺序进行排序。
  • TreeMap(Comparator comparator):构造一个新的、空的树映射表。它根据指定的 Comparator 进行排序。
  • V put(K key, V value):将指定的key-value映射添加到map中。如果 key 已经存在,则使用新值替换旧值,并返回旧值。
  • void putAll(Map<? extends K,? extends V> map):将指定映射表的所有映射都添加到此映射表中。
  • V get(Object key):返回key所对应的value,如果key不存在,则返回null。
  • boolean containsKey(Object key):如果此映射表包含指定键的映射,则返回 true。
  • boolean containsValue(Object value):如果此映射表将一个或多个键映射到指定值,则返回 true。
  • Set<Map.Entry<K,V>> entrySet():返回此映射表中包含的映射关系的 Set 视图。
  • K firstKey():返回此映射表中当前第一个(最低)键。
  • K lastKey():返回此映射表中当前最后一个(最高)键。
  • Map.Entry<K,V> firstEntry():返回此映射表中当前第一个(最低)entry。
  • Map.Entry<K,V> lastEntry():返回此映射表中当前最后一个(最高)entry。
  • int size():返回此映射表中映射的数量。
  • void clear():从此映射表中移除所有映射关系。
TreeMap类实例
import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String args[]) {
        // 创建 TreeMap
        TreeMap<String, String> treeMap = new TreeMap<>();

        // 添加 key-value 对
        treeMap.put("1", "one");
        treeMap.put("2", "two");
        treeMap.put("3", "three");
        treeMap.put("4", "four");
        treeMap.put("5", "five");

        // 获取 key-value 对
        System.out.println(treeMap.get("3"));    // 输出 "three"

        // 判断是否包含 key
        System.out.println(treeMap.containsKey("6"));    // 输出 "false"

        // 获取 key 的集合
        System.out.println(treeMap.keySet());    // 输出 "[1, 2, 3, 4, 5]"

        // 获取 value 的集合
        System.out.println(treeMap.values());    // 输出 "[one, two, three, four, five]"

        // 获取第一个 key
        System.out.println(treeMap.firstKey());    // 输出 "1"

        // 删除 key-value 对
        treeMap.remove("5");

        // 清空所有 key-value 对
        treeMap.clear();
    }
}
TreeMap类时间复杂度

TreeMap的访问时间复杂度是log(n),因为TreeMap是基于红黑树的,红黑树的高度最多是 log(n),因此TreeMap的访问时间复杂度是log(n)。