总结:Collections可以对List进行排序;如果想对Map进行排序,可以将Map转化成List,进行排序;
Collection.sort默认是升序排序,要降序排序的话需修改sort的第二个参数Comparator中的函数,用第二个参数和第一个参数进行比较。
实例如下:
public static void main(String[] args){
Map<String,String> resultMap=new HashMap<String,String>();
resultMap.put("aa", "2");
resultMap.put("bb", "4");
resultMap.put("cc", "1");
List<Map.Entry<String, String>> list= new ArrayList<Map.Entry<String, String>>(resultMap.entrySet());
Map<String, Long> result=new LinkedHashMap<String, Long>(list.size());
long total=0;
try{
Collections.sort(list, new Comparator<Map.Entry<String,String>>(){
public int compare(Map.Entry<String,String> map1,Map.Entry<String,String> map2){
//降序排列
return Long.valueOf(map2.getValue()).compareTo(Long.valueOf(map1.getValue()));
//升序排列
//return Long.valueOf(map1.getValue()).compareTo(Long.valueOf(map2.getValue()));
}
});
for(Map.Entry<String,String> entry:list){
result.put(entry.getKey(), Long.valueOf(entry.getValue()));
total=total+Long.valueOf(entry.getValue());
}
}catch(Exception e){
}
System.out.println(result);
}