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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM