原文: https://www.programiz.com/java-programming/sortedmap

在本教程中,我们将学习 Java SortedMap接口及其方法。

Java 集合框架的SortedMap接口可对存储在映射中的键进行排序。

它扩展了Map接口

Java `SortedMap`接口 - 图1


实现SortedMap的类

由于SortedMap是一个接口,因此我们无法从中创建对象。

为了使用SortedMap接口的功能,我们需要使用实现它的类TreeMap

Java `SortedMap`接口 - 图2


如何使用SortedMap

要使用SortedMap,我们必须首先导入java.util.SortedMap包。 导入包后,可以按照以下方法创建排序的映射。

  1. // SortedMap implementation by TreeMap class
  2. SortedMap<Key, Value> numbers = new TreeMap<>();

我们使用TreeMap类创建了一个名为number的排序映射。

这里,

  • key - 用于关联映射中每个元素(值)的唯一标识符
  • value - 映射中与按键相关联的元素

在这里,我们没有使用任何参数来创建排序的映射。 因此,映射将自然排序(升序)。


SortedMap的方法

SortedMap接口包含Map接口的所有方法。 这是因为MapSortedMap的超级接口。

除了所有这些方法,以下是SortedMap接口专用的方法。

  • comparator() - 返回一个可用于对映射中的键进行排序的比较器
  • firstKey() - 返回已排序映射的第一个键
  • lastKey() - 返回已排序映射的最后一个键
  • headMap(key) - 返回其键号小于指定的key的映射的所有条目
  • tailMap(key) - 返回其键大于或等于指定的key的映射的所有条目
  • subMap(key1, key2) - 返回其键位于key1key2之间的映射的所有条目,包括key1

要了解更多信息,请访问 Java SortedMap(Java 官方文档)


TreeMap类中SortedMap的实现

  1. import java.util.SortedMap;
  2. import java.util.TreeMap;
  3. class Main {
  4. public static void main(String[] args) {
  5. // Creating SortedMap using TreeMap
  6. SortedMap<String, Integer> numbers = new TreeMap<>();
  7. // Insert elements to map
  8. numbers.put("Two", 2);
  9. numbers.put("One", 1);
  10. System.out.println("SortedMap: " + numbers);
  11. // Access the first key of the map
  12. System.out.println("First Key: " + numbers.firstKey());
  13. // Access the last key of the map
  14. System.out.println("Last Key: " + numbers.lastKey());
  15. // Remove elements from the map
  16. int value = numbers.remove("One");
  17. System.out.println("Removed Value: " + value);
  18. }
  19. }

输出

  1. SortedMap: {One=1, Two=2}
  2. First Key: One
  3. Last Key: Two
  4. Removed Value: 1

要了解有关TreeMap的更多信息,请访问 Java TreeMap


现在我们知道了SortedMap接口,我们将使用TreeMap类学习其实现。