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接口。