📅  最后修改于: 2023-12-03 14:42:55.402000             🧑  作者: Mango
在Java中,SortedMap接口是一种通过一定顺序排序的Key-Value元素之间的映射。它扩展了Map接口并提供了一些应用于SortedMap的方法。SortedMap接口的实现类包括TreeMap和ConcurrentSkipListMap等。
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接口的示例,我们使用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接口的行为,并允许我们更容易地管理元素的排序。