Java中的SortedMap tailMap()方法
在Java中,SortedMap
是一个继承了Map
接口并对键进行排序的接口。与Map
接口不同,SortedMap
为键提供一个“自然顺序”,或者可以基于一个Comparator
来实现排序。这个自然顺序是在调用compareTo()
方法时定义的。
tailMap()
方法是SortedMap
接口提供的一个方法,它返回从此映射的指定键(包括指定键)到尾部的映射。
下面介绍一下SortedMap
接口中tailMap()
方法的用法和示例。
语法
下面是tailMap()
方法的语法:
SortedMap<K,V> tailMap(K fromKey)
它返回从此映射的指定键(包括指定键)到尾部的映射。如果此映射不包含该键,则返回从此映射的低端(包括该键的前一个键)到尾部的映射。
此方法返回的映射是这个映射的“视图”,因此在返回映射时修改原始映射将影响返回的映射,并反之亦然。
参数
tailMap()
方法接收一个参数fromKey
,表示从此映射的指定键(包括指定键)到尾部的映射。如果此映射不包含该键,则返回从此映射的低端(包括该键的前一个键)到尾部的映射。
返回值
tailMap()
方法返回一个SortedMap对象,从此映射的指定键(包括指定键)到尾部的映射。
示例
下面是一个使用tailMap()
方法的示例:
import java.util.SortedMap;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
SortedMap<String,String> map = new TreeMap<>();
map.put("A", "Apple");
map.put("B", "Banana");
map.put("C", "Cat");
SortedMap<String,String> subMap1 = map.tailMap("B");
System.out.println("SubMap1 contains :"+ subMap1);
SortedMap<String,String> subMap2 = map.tailMap("D");
System.out.println("SubMap2 contains :"+ subMap2);
}
}
输出结果:
SubMap1 contains :{B=Banana, C=Cat}
SubMap2 contains :{}
在上面的代码中,我们首先创建了一个TreeMap
对象map
,并向其中插入了三个键值对。然后我们调用了tailMap("B")
方法,并将结果存储在subMap1
变量中。subMap1
包含从键B
到尾部的映射,所以结果为{B=Banana, C=Cat}
。接下来,我们调用了tailMap("D")
方法,并将结果存储在subMap2
变量中。因为没有对应的键,所以返回的是空的SortedMap
对象。
结论
tailMap()
方法是SortedMap
接口提供的一个非常有用的方法,它可以让我们获取从指定键到尾部的SortedMap
视图。注意,返回的映射是这个映射的“视图”,因此在返回映射时修改原始映射将影响返回的映射,并反之亦然。