SortedMap的用法

说明:HashMap比SortedMap快,非排序的时候用HashMap

微信支付--签名篇

具体使用到的地方:微信支付生成签名sign的时候,api的原文是
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

package json;

import java.util.*;

/**
 * Created by wanggs on 2017/8/23.
 */
public class Test {
    @org.junit.Test
    public void test(){
        HashMap map=new HashMap();
        map.put("3", "33");
        map.put("1","11");
        map.put("2", "22");
        for (Map.Entry entry: map.entrySet()) {
            System.out.println("排序之前:"+entry.getKey()+" 值"+entry.getValue());

        }
        System.out.println("======================================================");
        SortedMap sort=new TreeMap(map);
        Set> entry1=sort.entrySet();
        Iterator> it=entry1.iterator();
        while(it.hasNext())
        {
            Map.Entry entry=it.next();
            System.out.println("排序之后:"+entry.getKey()+" 值"+entry.getValue());
        }
    }

    /**
     * 输出结果:
     *   排序之前:1 值11
     *   排序之前:2 值22
     *   排序之前:3 值33
     *   ======================================================
     *   排序之后:1 值11
     *   排序之后:2 值22
     *   排序之后:3 值33
     */
}


package json;

import java.util.*;

/**
 * Created by wanggs on 2017/8/23.
 */
public class Test {
    @org.junit.Test
    public void test() {
        SortedMap map = null ;
        map = new TreeMap() ;   //通过子类实例化接口对象
        map.put("D","DDDDD") ;
        map.put("A","AAAAA") ;
        map.put("C","CCCCC") ;
        map.put("B","BBBBB") ;
        System.out.println("第一个元素的key:" + map.firstKey()) ;
        System.out.println("key对于的值为:" + map.get(map.firstKey())) ;
        System.out.println("最后一个元素的key:" + map.lastKey()) ;
        System.out.println("key对于的值为:" + map.get(map.lastKey())) ;
        System.out.println("返回小于指定范围的集合(键值小于“C”)") ;
        for(Map.Entry me:map.headMap("C").entrySet()){
            System.out.println("\t|- " + me.getKey() + "-->" + me.getValue()) ;
        }
        System.out.println("返回大于指定范围的集合(键值大于等于“C”)") ;
        for(Map.Entry me:map.tailMap("C").entrySet()){
            System.out.println("\t|- " + me.getKey() + "-->" + me.getValue()) ;
        }
        System.out.println("返回部分集合(键值“B”和“D”之间,包括B不包括D)") ;
        for(Map.Entry me:map.subMap("B","D").entrySet()){
            System.out.println("\t|- " + me.getKey() + "-->" + me.getValue()) ;
        }
    }
    /**
     * 第一个元素的key:A
     key对于的值为:AAAAA
     最后一个元素的key:D
     key对于的值为:DDDDD
     返回小于指定范围的集合(键值小于“C”)
     |- A-->AAAAA
     |- B-->BBBBB
     返回大于指定范围的集合(键值大于等于“C”)
     |- C-->CCCCC
     |- D-->DDDDD
     返回部分集合(键值“B”和“D”之间,包括B不包括D)
     |- B-->BBBBB
     |- C-->CCCCC

     */
}

你可能感兴趣的:(SortedMap的用法)