📅  最后修改于: 2023-12-03 14:42:16.938000             🧑  作者: Mango
Java TreeMap类是一种基于红黑树(Red-Black tree)的有序映射表,其元素按照键的自然顺序或者特定的排序规则进行排序。
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()
:从此映射表中移除所有映射关系。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的访问时间复杂度是log(n),因为TreeMap是基于红黑树的,红黑树的高度最多是 log(n),因此TreeMap的访问时间复杂度是log(n)。