Java SortedMap 接口:概览、方法与 TreeMap 实现
Java SortedMap 接口
本教程探索 Java SortedMap 接口、其关键方法及如何配合 TreeMap 类使用。
Java SortedMap 接口属于集合框架,保证 Map 键按排序顺序存储。它扩展基础 Map 接口。

实现 SortedMap 的类
因 SortedMap 是接口,无法直接实例化。JDK 提供的具体实现是 TreeMap 类,默认按键自然升序维护条目。

如何使用 SortedMap
使用 SortedMap,先导入接口:
import java.util.SortedMap;
import java.util.TreeMap;
再用 TreeMap 创建实例:
SortedMap<Key, Value> numbers = new TreeMap<>();
此例中 numbers 按键自然升序存储。也可提供自定义 Comparator 实现不同排序。
定义:
- Key — 映射到值的唯一标识符。
- Value — 与键关联的数据。
无参构造器意味着按键类型的自然顺序排序。
SortedMap 的关键方法
除继承 Map 所有方法外,SortedMap 新增操作:
- comparator() — 返回用于键排序的
Comparator,自然顺序时返回null。 - firstKey() — 获取 Map 中最小键。
- lastKey() — 获取 Map 中最大键。
- headMap(K toKey) — 返回键严格小于
toKey的视图。 - tailMap(K fromKey) — 返回键大于或等于
fromKey的视图。 - subMap(K fromKey, K toKey) — 返回键范围从
fromKey(含)到toKey(不含)的视图。
详细信息请参阅 Java SortedMap 文档。
TreeMap:SortedMap 的具体实现
import java.util.SortedMap;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
// 使用 TreeMap 创建 SortedMap
SortedMap<String, Integer> numbers = new TreeMap<>();
// 插入元素
numbers.put("Two", 2);
numbers.put("One", 1);
System.out.println("SortedMap: " + numbers);
// 获取首尾键
System.out.println("First Key: " + numbers.firstKey());
System.out.println("Last Key: " + numbers.lastKey());
// 按键移除条目
int removed = numbers.remove("One");
System.out.println("移除的值: " + removed);
}
}
输出
SortedMap: {One=1, Two=2}
First Key: One
Last Key: Two
移除的值: 1
此例演示 SortedMap 配合 TreeMap 的行为。更多 TreeMap 详情见 Java TreeMap 文档。
java
- 掌握 C# 接口:定义、实现与实战场景全解析
- 精通 Java 运算符:类型、语法与实战示例
- 精通 Java super 关键字:高级用法与实战示例
- 精通 Java 接口:概念、实现与最佳实践
- 精通 Java Try-With-Resources:自动资源管理详解
- Java 注解详解:类型、放置位置与实战示例
- 掌握 Java NavigableSet 接口:导航、排序与实战示例
- 掌握 Java Lambda 表达式:从基础到 Stream API 实战
- Java 接口 vs 抽象类:如何选择合适的抽象方式
- Java 接口全解析:定义契约、默认方法、多实现与标记接口
- Java 9 集合工厂方法:一行代码创建不可变 List/Set/Map
- Java 9 接口私有方法:增强封装与代码复用