java中實現HashMap中的按照key的字典順序排序輸出
阿新 • • 發佈:2019-01-10
public String sign1(Map params){
JSONObject reqObj = JSONObject.fromObject(params);
JSONObject header= (JSONObject)reqObj.get("header");
//獲取header元素集合
Iterator headerIt = header.keys();
List<String> list = new ArrayList<String>();
//把header元素集合迭代 出 "param=value"形式字串放入list集合中
while (headerIt.hasNext()) {
String param = headerIt.next().toString();
String value = header.getString(param);
if(value == null){
continue ;
}else if("".equals(value.trim())){
continue ;
}else if("sign".equals(param.trim())){
continue ;
}else{
list.add(param+"="+value);
}
}
Collections.sort(list);
String paramStr="";
//迭代list拼裝簽名sign
for(int i=0;i<list.size();i++){
if(i!=list.size()-1){
paramStr+=list.get(i)+"&";
}
else{
paramStr+=list.get(i);
}
}
String signStr =paramStr;
return signStr;
JSONObject reqObj = JSONObject.fromObject(params);
JSONObject header= (JSONObject)reqObj.get("header");
//獲取header元素集合
Iterator headerIt = header.keys();
List<String> list = new ArrayList<String>();
//把header元素集合迭代 出 "param=value"形式字串放入list集合中
while (headerIt.hasNext()) {
String param = headerIt.next().toString();
String value = header.getString(param);
if(value == null){
continue ;
}else if("".equals(value.trim())){
continue ;
}else if("sign".equals(param.trim())){
continue ;
}else{
list.add(param+"="+value);
}
}
Collections.sort(list);
String paramStr="";
//迭代list拼裝簽名sign
for(int i=0;i<list.size();i++){
if(i!=list.size()-1){
paramStr+=list.get(i)+"&";
}
else{
paramStr+=list.get(i);
}
}
String signStr =paramStr;
return signStr;
}
//引數
Map header = new HashMap();
header.put("b",b);
header.put("a",a);
Map pm = new HashMap();
pm.put("header", header);
//按字典排序
String unsign_params = sign1(pm);
System.out.println("字典排序後引數串為:"+ unsign_params);
如果你是湖南的 歡迎加入 湖南人在深圳-Java群:557651502