通常在业务需求中调用别人接口的时候,会有对英文字母升序排序(ASCII升序),然后加密啥的,最后生成一个签名再传给对方这一类的要求,这里巧妙利用TreeMap来实现ASCII排序。
public static String sendNewData(String userName, String key,String url) {
String result = "";
try {
//把参数put到TreeMap里去
Map<String, String> map = new TreeMap<String, String>();
map.put("userName", userName);
map.put("time", String.valueOf(System.currentTimeMillis() / 1000));
map.put("sign", buildSign(map, key));//构建签名,参数已经重新按照ASCII排序过
result = post(url, map);//post请求
System.out.println(result);// 打印返回的结果
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
构建签名的时候,我们只需把TreeMap里的参数一个个的取出来就行了,TreeMap已经把我们之前put进去的参数自动排序了
public static String buildSign(Map<String, String> map, String key) {
Set<Entry<String, String>> set = map.entrySet();
StringBuffer sb = new StringBuffer();
//取出排序后的参数,逐一连接起来
for (Iterator<Map.Entry<String, String>> it = set.iterator(); it.hasNext();) {
Map.Entry<String, String> me = it.next();
sb.append(me.getValue() + "|");
}
sb.append(key);
return sb.toString().toUpperCase();//返回最终排序后的结果,这里key不参与排序中,具体看接口规约
//return (Md5Encrypt.encrypt(sb.toString())).toUpperCase();//这个带有md5加密的,算法就不贴了,网上很多
}
分享到:
相关推荐
TreeMap按VALUE排序
treeMap实现分组数据树形结构,在通过Redis和MySQL数据库ID生成序列ID
本资源提供了List对对象中的属性和TreeMap, String>对键值排序,并针对100w条数据排序,对比List和TreeMap, String>排序的效率。个人认为排序效率对比可以相信,但也可能存在不科学之处,还请高手给与指点,多多包涵...
在eclipse上用java实现统计一句话或一段话中单词出现的个数,并按照字母表顺序输出,并利用treemap实现
TreeMap自己的理解
在JavaEE中 TreeMap排序的问题
主要介绍了JAVA使用TreeMap对字符串进行排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Java TreeMap排序算法,结合实例形式分析了TreeMap排序算法的原理、实现方法与相关注意事项,需要的朋友可以参考下
C#实现的树图和放射环算法,信息可视化领域
Python TreeMap可视化方案数据源(因为不能粘贴链接额,具体实现实现代码,请看我博客专栏《机器学习》:))
vue 2.x echarts treemap带示例数据及效果图,及在对话框里显示的处理方法
编写一个应用程序,使用TreeMap,V>类,分别按照价格和容量排序并输出10个硬盘的详细信息 9_5.编写一个应用程序,要求将LinkedList创建的对象写入到文件,然后读出一个LinkedList对象,并遍历LinkedList节点中的数据
JAVA中用TREEMAP做的,可以求学生的总分,总分的平均值,最大值最小值
Python_TreeMap_可视化方案数据源(因为不能直接粘贴链接,所以实现代码,请移步看我博客专栏《机器学习》)
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)...// TreeMap按自己的意愿进行排序,默认按key值升序排序。 另包含一篇网文:在java中使用TreeMap进行中文排序
TreeMap源码是基于数据结构中的红黑树进行设计并开发的。
Java TreeMap源码解析 Java TreeMap源码解析 Java TreeMap源码解析
Treemap-4.1.2.zip tree map开发代码,可用于创建tree map
实现由 Mark Bruls、Kees Huizing 和 Jarke J. van Wijk 发布的 Squarified Treemap 算法。 用途 假设我们有一个宽度为 6、高度为 4 的矩形,并且进一步假设这个矩形必须细分为 7 个矩形,面积分别为 6、6、4、3、2...
TreeMap例子GDP