在Java开发中,TreeMap 是一个非常重要的集合类,它基于红黑树(Red-Black Tree)实现,能够自动对键进行排序。如果你需要一个既能存储键值对、又能保持元素有序的数据结构,那么 TreeMap 就是你的不二之选。

TreeMap 是 Java 集合框架(Java集合框架)的一部分,实现了 NavigableMap 接口,底层使用红黑树数据结构。它的主要特点包括:
下面是一个简单的 TreeMap 示例,展示如何创建、添加元素并遍历:
import java.util.TreeMap;public class TreeMapExample { public static void main(String[] args) { // 创建一个TreeMap TreeMap<String, Integer> treeMap = new TreeMap<>(); // 添加键值对 treeMap.put("banana", 3); treeMap.put("apple", 5); treeMap.put("orange", 2); // 自动按键的自然顺序(字典序)排序 System.out.println(treeMap); // 输出: {apple=5, banana=3, orange=2} // 遍历TreeMap for (String key : treeMap.keySet()) { System.out.println(key + " => " + treeMap.get(key)); } }}默认情况下,TreeMap 使用键的自然顺序排序。但你也可以通过传入 Comparator 来实现自定义排序逻辑。例如,按字符串长度排序:
import java.util.Comparator;import java.util.TreeMap;public class TreeMapCustomSort { public static void main(String[] args) { // 按字符串长度升序排序 TreeMap<String, Integer> treeMap = new TreeMap<>( Comparator.comparing(String::length) ); treeMap.put("cat", 1); treeMap.put("elephant", 2); treeMap.put("dog", 3); System.out.println(treeMap); // 输出: {cat=1, dog=3, elephant=2} }}TreeMap 提供了许多实用的方法,特别适合范围查询和导航操作:
firstKey() / lastKey():获取最小/最大键;higherKey(K key) / lowerKey(K key):获取比指定键大/小的最近键;subMap(K from, K to):获取指定范围的子映射;tailMap(K from):获取从指定键开始到末尾的映射。TreeMap<Integer, String> map = new TreeMap<>();map.put(10, "Ten");map.put(5, "Five");map.put(20, "Twenty");System.out.println("First key: " + map.firstKey()); // 5System.out.println("Last key: " + map.lastKey()); // 20System.out.println("Higher than 10: " + map.higherKey(10)); // 20System.out.println("Submap from 5 to 20: " + map.subMap(5, 20)); // {5=Five, 10=Ten}| 特性 | HashMap | LinkedHashMap | TreeMap |
|---|---|---|---|
| 是否有序 | 否 | 插入顺序 | 键的自然/自定义顺序 |
| 时间复杂度(增删查) | O(1) | O(1) | O(log n) |
| 允许 null 键 | 是 | 是 | 仅当使用自定义 Comparator 时 |
通过本教程,你应该已经掌握了 Java TreeMap使用教程 的核心内容。TreeMap 不仅能自动对键排序,还支持高效的范围查询操作,非常适合需要有序映射的场景。记住,TreeMap 基于 红黑树 实现,这是它高效排序能力的来源。
无论你是初学者还是有经验的开发者,理解 Java集合框架 中的 TreeMap 都将大大提升你在处理有序数据时的效率。希望这篇教程能帮助你轻松上手 TreeMap!
关键词回顾:Java TreeMap使用教程、TreeMap排序、Java集合框架、TreeMap红黑树
本文由主机测评网于2025-12-14发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127833.html