📜  Java中的SortedMap接口与示例(1)

📅  最后修改于: 2023-12-03 14:42:55.402000             🧑  作者: Mango

Java中的SortedMap接口

在Java中,SortedMap接口是一种通过一定顺序排序的Key-Value元素之间的映射。它扩展了Map接口并提供了一些应用于SortedMap的方法。SortedMap接口的实现类包括TreeMap和ConcurrentSkipListMap等。

SortedMap接口中的方法
  • Comparator comparator():返回对此映射中的键进行排序的比较器;如果这个映射使用自然排序,则返回null。

  • SortedMap<K,V> subMap(K fromKey, K toKey):返回键位于 fromKey和toKey之间的key-value集合。

  • SortedMap<K,V> headMap(K toKey):返回键小于toKey的键值对集合。

  • SortedMap<K,V> tailMap(K fromKey):返回键大于等于fromKey的键值对集合。

  • K firstKey():返回此映射中当前第一个(最低)键。

  • K lastKey():返回此映射中当前最后一个(最高)键。

SortedMap接口的示例

下面是一个SortedMap接口的示例,我们使用TreeMap类作为SortedMap的实现。

import java.util.SortedMap;
import java.util.TreeMap;

public class SortedMapExample {

    public static void main(String[] args) {

        SortedMap<String, Integer> sortedMap = new TreeMap<>();

        sortedMap.put("three", 3);
        sortedMap.put("one", 1);
        sortedMap.put("four", 4);
        sortedMap.put("five", 5);
        sortedMap.put("two", 2);

        System.out.println("SortedMap: " + sortedMap);

        System.out.println("First Key: " + sortedMap.firstKey());
        System.out.println("Last Key: " + sortedMap.lastKey());

        SortedMap<String, Integer> subMap = sortedMap.subMap("two", "four");
        System.out.println("Sub Map: " + subMap);

        SortedMap<String, Integer> headMap = sortedMap.headMap("three");
        System.out.println("Head Map: " + headMap);

        SortedMap<String, Integer> tailMap = sortedMap.tailMap("three");
        System.out.println("Tail Map: " + tailMap);

    }
}

输出结果:

SortedMap: {five=5, four=4, one=1, three=3, two=2}
First Key: five
Last Key: two
Sub Map: {three=3, two=2}
Head Map: {five=5, four=4, one=1, three=3}
Tail Map: {three=3, two=2}
总结

SortedMap 接口是一套基于排序的 key-value 对映射的 API。它提供了像 subMap(fromKey, toKey)、headMap(toKey)、tailMap(fromKey)、comparator()等方法,这些方法强化了Map接口的行为,并允许我们更容易地管理元素的排序。