请解释 Java 中 TreeMap 的核心概念、内部实现机制、主要特性以及典型使用场景。
考察说明
考查对 TreeMap 的数据结构、排序机制和适用场景的理解。
回答思路
- 【回答框架 1】TreeMap 是 Java 集合框架中基于红黑树实现的有序 Map,键值对按自然顺序或自定义比较器排序。
- 【回答框架 2】其核心操作 get、put 和 remove 的时间复杂度为 O(log n),保持键的有序性,支持范围查询。
- 【回答框架 3】与 HashMap 相比,TreeMap 牺牲了常数时间性能换取有序性,且不允许 null 键(允许 null 值)。
- 【回答框架 4】适用场景包括需要按键排序遍历、范围操作(subMap、headMap、tailMap)以及需要有序键的场合。
- 【关键点 1】基于红黑树,插入、删除、查找均为 O(log n)。
- 【关键点 2】键有序,按自然顺序或 Comparator 排序。
- 【关键点 3】不允许 null 键,允许 null 值。
- 【关键点 4】支持 range view 操作,如 subMap、headMap、tailMap。
- 【关键点 5】非线程安全,需外部同步。
- 【易错点 1】误以为 TreeMap 允许 null 键,实际会抛 NullPointerException。
- 【易错点 2】忽略自定义 Comparator 的不一致性,导致键比较混乱。
- 【易错点 3】在多线程环境下未加同步,导致数据不一致。