package com.kidgrow.common.utils;
import java.net.URLEncoder;
import java.util.*;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
*
* @Description: 排序工具类
* @Project:
* @CreateDate: Created in 2020/2/4 13:58
* @Author: liuke
*/
public class SortUtils {
public static Map orderParam(Map map) {
HashMap tempMap = new LinkedHashMap();
List> infoIds = new ArrayList>(map.entrySet());
Collections.sort(infoIds, new Comparator>() {
public int compare(Map.Entry o1, Map.Entry o2) {
return (o1.getKey()).toString().compareTo(o2.getKey());
}
});
for (int i = 0; i < infoIds.size(); i++) {
Map.Entry item = infoIds.get(i);
tempMap.put(item.getKey(), item.getValue());
}
return tempMap;
}
/**
* @param param 参数
* @return
*/
public static String formatUrlParam(Map param) {
String params = "";
Map map = param;
try {
List> itmes = new ArrayList>(map.entrySet());
//对所有传入的参数按照字段名从小到大排序
//Collections.sort(items); 默认正序
//可通过实现Comparator接口的compare方法来完成自定义排序
Collections.sort(itmes, new Comparator>() {
@Override
public int compare(Map.Entry o1, Map.Entry o2) {
// TODO Auto-generated method stub
return (o1.getKey().toString().compareTo(o2.getKey()));
}
});
//构造URL 键值对的形式
StringBuffer sb = new StringBuffer();
for (Map.Entry item : itmes) {
if (StringUtils.isNotBlank(item.getKey())) {
String key = item.getKey();
if(!"sign".equals(key)) {
String val = item.getValue();
val = URLEncoder.encode(val, "UTF-8");
sb.append(val);
}
}
}
params = sb.toString();
} catch (Exception e) {
return "";
}
return params;
}
}