http://book.51cto.com/art/200908/141101.htm
13.8 SortedMap接口
SortedMap接口是排序接口,只要是实现了此接口的子类,都属于排序的子类,TreeMap也是此接口的一个子类。SortedMap接口的定义如下:
- public interface SortedMap<K,V>
- extends Map<K,V>
之前讲解的TreeMap就是此接口的实现类,所以TreeMap可以完成排序的功能。在此接口上定义了一些Map中没有的方法,表13-14列出了部分的方法。
表13-14 SortedMap接口扩展的方法
序号 |
方 法 |
类型 |
描 述 |
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,K toKey) |
普通 |
返回指定key范围的集合 |
6 |
public SortedMap<K,V> tailMap (K fromKey) |
普通 |
返回大于指定key 的部分集合 |
下面通过一个范例让读者对以上的操作有所了解。
范例:SortedMap演示
- package org.lxh.demo13.mapdemo;
- import java.util.Map;
- import java.util.SortedMap;
- import java.util.TreeMap;
- public class SortedMapDemo {
- public static void main(String args[]){
- SortedMap<String, String> map = null; // 声明SortedMap对象
- map = new TreeMap<String, String>(); // 实例化SortedMap对象
- map.put("D、jiangker", "http://www. jiangker.com/") ; // 增加内容
- map.put("A、mldn", "www.mldn.cn"); // 增加内容
- map.put("C、zhinangtuan", "www. zhinangtuan.net.cn"); // 增加内容
- map.put("B、mldnjava", "www.mldnjava.cn"); // 增加内容
- 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、mldnjava").
- entrySet()){
- System.out.println("\t|- " + me.getKey() + " --> " + me.
- getValue());
- }
- System.out.println("返回大于指定范围的集合") ;
- for(Map.Entry<String,String> me : map.tailMap("B、mldnjava").
- entrySet()){
- System.out.println("\t|- " + me.getKey() + " --> " + me.
- getValue());
- }
- System.out.println("部分集合") ;
- for(Map.Entry<String,String> me : map.subMap("A、mldnjava","C、
- zhinangtuan").entrySet()){
- System.out.println("\t|- " + me.getKey() + " --> " + me.
- GetValue());
- }
- }
- }
程序运行结果:
- 第一个元素的内容的key:A、mldn;对应的值:www.mldn.cn
- 最后一个元素的内容的key:D、jiangker;对应的值: http://www.jiangker.com/
- 返回小于指定范围的集合
- |- A、mldn-->www.mldn.cn
- 返回大于指定范围的集合
- |- B、mldnjava-->www.mldnjava.cn
- |- C、zhinangtuan-->www.zhinangtuan.net.cn
- |- D、jiangker-->http://www.jiangker.com/
- 部分的集合
- |- B、mldnjava-->www.mldnjava.cn
以上规定了很多Map接口中没有的方法,但是如果要操作以上的方法,则对象所在的类必须实现Comparable接口。