- SortedMap 接口是排序接口,只要是实现了此接口的子类,都属于排序的子类,TreeMap 也是此接口的一个子类。SortedMap 接口定义如下:
public interface SortedMap<K,V> extends Map<K,V>
- 之前讲解的 TreeMap 就是此接口的实现类,所以 TreeMap 可以完成排序功能。在此接口上定义了一些 Map 中没有的方法,下表列出了其中部分方法。
序号 | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public Comparator<? super K> comparator() | 普通 | 返回比较器对象 |
2 | public K firstKey() | 普通 | 返回第一个元素的 key |
3 | public SortedMap<K,V> headMap(K toKey) | 普通 | 返回小于等于指定 key 的部分集合 |
4 | public K lastKey() | 普通 | 返回最后一个元素的 key |
5 | public SortedMap<K, V> subMap(K fromKey) | 普通 | 返回指定 key 范围的集合 |
6 | public SortedMap<K, V> tailMap(K fromKey) | 普通 | 返回大于指定 key 范围的集合 |
- 实例:
package self.learn.mapdemo;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
public class MapDemo {
public static void main(String[] args) {
SortedMap<String,String> map = null; // 声明 SortedMap 对象,指定泛型类型
map = new TreeMap<String, String>(); // 实例化 SortedMap 对象
map.put("C", "learn www.com.cn");
map.put("B", "is interesting");
map.put("A", "Java Language"); // 增加内容
System.out.print("第一个元素的内容的 key:"+map.firstKey());
System.out.println("; 对应的值:"+map.get(map.firstKey()));
System.out.print("最后一个元素的内容的 key:"+map.lastKey());
System.out.println("; 对应的值:"+map.get(map.lastKey()));
System.out.println("返回小于指定范围的集合:");
for( Map.Entry<String, String> me : map.headMap("B").entrySet())
System.out.println("\t|-"+me.getKey()+"--->"+me.getValue());
System.out.println("返回小大于指定范围的集合:");
for( Map.Entry<String, String> me : map.tailMap("B").entrySet())
System.out.println("\t|-"+me.getKey()+"--->"+me.getValue());
System.out.println("部分集合:");
for( Map.Entry<String, String> me : map.subMap("B","C").entrySet())
System.out.println("\t|-"+me.getKey()+"--->"+me.getValue());
}
}
结果: