关于使用SortedMap

302 阅读1分钟

[java]  view plain  copy

  1. package Map;  

  2.   

  3. import java.util.HashMap;  

  4. import java.util.Iterator;  

  5. import java.util.Set;  

  6. import java.util.SortedMap;  

  7. import java.util.TreeMap;  

  8. import java.util.Map.Entry;  

  9.   

  10. /** 

  11.  * HashMap比SortedMap快,非排序的时候用HashMap 

  12.  * @author Administrator 

  13.  * 

  14.  */  

  15. public class Sortedmap {  

  16.     public static void main(String[] args) {  

  17.         HashMap<String,String> map=new HashMap<String, String>();  

  18.         map.put("1","11");  

  19.         map.put("2", "22");  

  20.         map.put("3", "33");  

  21.         for (Entry<String,String> entry: map.entrySet()) {  

  22.             System.out.println("排序之前:"+entry.getKey()+" 值"+entry.getValue());  

  23.   

  24.         }  

  25.         System.out.println("======================================================");  

  26.         // 只是用sortMap 来引用treeMap实例 \

  27.         SortedMap<String,String> sort=new TreeMap<String,String>(map);  

  28.         Set<Entry<String,String>> entry1=sort.entrySet();  

  29.         Iterator<Entry<String,String>> it=entry1.iterator();  

  30.         while(it.hasNext())  

  31.         {  

  32.             Entry<String,String> entry=it.next();  

  33.             System.out.println("排序之后:"+entry.getKey()+" 值"+entry.getValue());  

  34.         }  

  35.     }  

  36.   

  37.   

  38.   

  39. }  

  1. 排序之前:3 值33  
  2. 排序之前:2 值22  
  3. 排序之前:1 值11  
  4. ======================================================  
  5. 排序之后:1 值11  
  6. 排序之后:2 值22  
  7. 排序之后:3 值33 

\

其实上面的排序是用treeMap来实现的,treeMap实现了sortMap 接口

签名生成的通用步骤如下:

第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

\