⑴ java如何把Map<String,Object> map = new HashMap<String, Object>(); 按 Key 排序
首先Map排序需要自己写一堆算法。其次HashMap是无序的,即使已经排序正确了,取值时也不一定就是按顺序取出的。所以直接排序存放是不可行的。
但可以曲线救国的办法,通过Set<String> keys = map.keySet();取得map的key值集合,然后单独给keys来个排序就简单多了,然后按排序后的keys去遍历取值,就OK了。
⑵ java hashmap按照value来排序
ArrayList<Entry<String,String>> list = new ArrayList<Entry<String,String>>(sMap.entrySet());
Collections.sort(list, new Comparator<Object>(){
public int compare(Object e1, Object e2){
int v1 = Integer.parseInt(((Entry<String,String>)e1).getValue().toString());
int v2 = Integer.parseInt(((Entry)e2).getValue().toString());
return v1-v2;
}
});
for (Entry<String, String> e: l){
System.out.println(e.getKey()+" "+e.getValue());
}