您好,登錄后才能下訂單哦!
這篇文章主要介紹了java如何實現對map的字典序排序,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體如下:
java中對map的字典序排序,算法驗證比對微信官網https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN,搜索關鍵字“附錄1-JS-SDK使用權限簽名算法”
import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import org.apache.commons.codec.digest.DigestUtils; import com.opensymphony.xwork2.ActionSupport; public class Test extends ActionSupport { //測試頁面 public String test(){ return SUCCESS; } public static void main(String [] args){ String jsapi_ticket="kgt8ON7yVITDhtdwci0qef4Fd1u2d2iWwTE-nt2tSR7Me3FmWAhtxJa3QQCiMdLper4cUrqpDxkDJ6ljLgc7PA"; int timestamp=1460637652; String nonceStr="C1WNnEpCwq4wa158"; String url="http://qq.test.com/test/index.html"; //字典序排序 HashMap<String,String> map=new HashMap<String,String>(); map.put("jsapi_ticket", jsapi_ticket); map.put("timestamp", timestamp+""); map.put("nonceStr", nonceStr); map.put("url", url); Collection<String> keyset= map.keySet(); List list=new ArrayList<String>(keyset); Collections.sort(list); //這種打印出的字符串順序和微信官網提供的字典序順序是一致的 for(int i=0;i<list.size();i++){ System.out.println(list.get(i)+"="+map.get(list.get(i))); } //微信官網寫的按照字典序排序后的字符串 String sign="jsapi_ticket="+jsapi_ticket+"&noncestr="+nonceStr+"×tamp="+timestamp+"&url="+url; //System.out.println(DigestUtils.shaHex("jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value")); //微信返回的加密串 String signature=DigestUtils.shaHex(sign);//sha1加密 System.out.println(signature); } }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java如何實現對map的字典序排序”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。