public static String concatSignString(Map<String, String> map) {
Map<String, String> paramterMap = new HashMap<>();
map.forEach((key, value) -> paramterMap.put(key, value));
// 按照key升续排序,然后拼接参数
Set<String> keySet = paramterMap.keySet();
String[] keyArray = keySet.toArray(new String[keySet.size()]);
Arrays.sort(keyArray);
StringBuilder sb = new StringBuilder();
for (String k : keyArray) {
if (StringUtils.isEmpty(sb.toString())) {
sb.append("?");
} else {
sb.append("&");
}
sb.append(k).append("=").append(map.get(k));
}
return sb.toString();
}
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("b","2");
hashMap.put("a","1");
hashMap.put("c","3");
hashMap.put("f","4");
hashMap.put("h","6");
hashMap.put("g","5");
hashMap.put("u","7");
String s = concatSignString(hashMap);
System.out.println(s);
}