最近开发微信和支付宝(Alipay )的服务端支付,结合词典的排序和url参数向词典的转换操作,整理了工具类:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
public class MapUtil {
//*
公共静态图字符串,
stringsortmapbykey(mapstring,String map ) {
if(map==null||map.isempty () ) )。
返回空值;
}
地图字符串,
String sortMap=new TreeMap String,
string (新内向的前辈);
sortmap.putall(map;
return sortMap;
}
//*
公共静态图字符串,
stringsortmapbyvalue(mapstring,String oriMap )。
if (or IMAP==null|| or IMAP.isempty () ) )。
返回空值;
}
地图字符串,
stringsortedmap=newlinkedhashmapstring,
String (;
列表映射. entry string,
string entry list=newarraylistmap.entry string,
string(orIMAP.entryset );
collections.sort(Entrylist,new危机的小海豚) );
Iterator Map.Entry String,
String iter=entryList.iterator (;
映射. entry string,
String tmpEntry=null;
wile(Iter.Hasnext () ) ) ) )。
tmpEntry=iter.next (;
sortedmap.put(tmpentry.getkey )、tmpEntry.getValue;
}
return sortedMap;
}
//*
公共静态图字符串,
对象参数2映射(字符串参数)。
地图字符串,
Object map=new HashMap String,
Object (;
if(''.equals(param )|| null==param ) )
返回地图;
}
String[] params=param.split (' );
for(intI=0; i params.length; I ) {
string[]p=Params[I].split('=' );
if(p.length==2) {
map.put(p[0],p[1];
}
}
返回地图;
}
//*
公共状态映射2 URL params (mapstring,stringmap,boolean isSort ) {
if (map==空值) {
返回' ';
}
StringBuffer sb=new StringBuffer (;
liststringkeys=newarrayliststring (map.keyset );
if(issort ) {
collections.sort(keys;
}
for(intI=0; i keys.size (; I ) {
stringkey=keys.get(I;
stringvalue=map.get(key ).toString );
sb.append(key'='value );
sb.append (' );
}
String s=sb.toString (;
if(s.Endswith (' ) ) }
s=s.substring(0,s.lastIndexOf ) ');
}
返回s;
}
}
class内向的前辈implements Comparator String {
@Override
公共输入公司(String str2,String str2) {
returnstr1.comPareto(str2;
}
}
class危机小海豚implementscomparatormap.entry string,String {
@Override
公共字符串比较(entrystring,String me1,entrystring,String me2 ) {
return me1.getValue ().com Pareto (me2.getvalue ) );
}
}
另外,要用map的key ascii代码按升序排列,还有一个简单的方法。 例如,以下语句:
sortedmapsmap=newtreemap(map;
请注意,map是一个现成的无序词典。 依赖SortedMap和TreeMap变换很简单。