SortedMap接口

http://book.51cto.com/art/200908/141101.htm

13.8  SortedMap接口

SortedMap接口是排序接口,只要是实现了此接口的子类,都属于排序的子类,TreeMap也是此接口的一个子类。SortedMap接口的定义如下:

  1. public interface SortedMap<K,V>  
  2. 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演示

  1. package org.lxh.demo13.mapdemo;  
  2. import java.util.Map;  
  3. import java.util.SortedMap;  
  4. import java.util.TreeMap;  
  5. public class SortedMapDemo {  
  6.     public static void main(String args[]){  
  7.         SortedMap<String, String> map = null;  // 声明SortedMap对象  
  8.         map = new TreeMap<String, String>();    // 实例化SortedMap对象  
  9.         map.put("D、jiangker", "http://www. jiangker.com/") ; // 增加内容  
  10.         map.put("A、mldn", "www.mldn.cn");         // 增加内容  
  11.         map.put("C、zhinangtuan", "www. zhinangtuan.net.cn"); // 增加内容  
  12.         map.put("B、mldnjava", "www.mldnjava.cn");     // 增加内容  
  13.         System.out.print("第一个元素的内容的key:"  + map.firstKey()) ;  
  14.         System.out.println(";对应的值:" +  map.get(map.firstKey())) ;  
  15.         System.out.print("最后一个元素的内容的key:"  + map.lastKey()) ;  
  16.         System.out.println(";对应的值:" + map.get(map.lastKey())) ;  
  17.         System.out.println("返回小于指定范围的集合") ;  
  18.         for(Map.Entry<String,String> me :  map.headMap("B、mldnjava").   
  19. entrySet()){  
  20.             System.out.println("\t|- " + me.getKey() + " --> " + me.   
  21. getValue());  
  22.         }  
  23.         System.out.println("返回大于指定范围的集合") ;  
  24.         for(Map.Entry<String,String> me : map.tailMap("B、mldnjava").   
  25. entrySet()){  
  26.             System.out.println("\t|- " +  me.getKey() + " --> " + me.   
  27. getValue());  
  28.         }  
  29.         System.out.println("部分集合") ;  
  30.         for(Map.Entry<String,String> me :  map.subMap("A、mldnjava","C、  
  31. zhinangtuan").entrySet()){  
  32.             System.out.println("\t|- " + me.getKey() + " --> " + me.   
  33. GetValue());  
  34.         }  
  35.     }  

程序运行结果:

  1. 第一个元素的内容的key:A、mldn;对应的值:www.mldn.cn  
  2. 最后一个元素的内容的key:D、jiangker;对应的值: http://www.jiangker.com/  
  3. 返回小于指定范围的集合  
  4.     |- A、mldn-->www.mldn.cn  
  5. 返回大于指定范围的集合  
  6.     |- B、mldnjava-->www.mldnjava.cn  
  7.     |- C、zhinangtuan-->www.zhinangtuan.net.cn  
  8.     |- D、jiangker-->http://www.jiangker.com/  
  9. 部分的集合  
  10.     |- B、mldnjava-->www.mldnjava.cn 

以上规定了很多Map接口中没有的方法,但是如果要操作以上的方法,则对象所在的类必须实现Comparable接口。

posted @ 2011-12-17 14:04  Atlas's blog  阅读(4272)  评论(1编辑  收藏  举报