思路:先统计,再排序,先map,再list,再map.
实现代码如下:
String ssr[] = {"aa","bb","cc","aa","aaa","bb","bb"};
Map<String,Integer> map = new HashMap<String,Integer>();
for (int i = 0; i < ssr.length; i++) {
if(map.get(ssr[i])==null){
map.put(ssr[i], 1);
}else{
map.put(ssr[i], map.get(ssr[i])+1);
}
}
List list = new LinkedList(map.entrySet());
Collections.sort(list, new Comparator(){
public int compare(Object o1, Object o2){
return ((Comparable) ((Map.Entry) (o2)).getValue()).compareTo(((Map.Entry) (o1)).getValue());
}
});
Map sortedMap = new LinkedHashMap();
for (Iterator it = list.iterator(); it.hasNext();){
Map.Entry entry = (Map.Entry)it.next();
sortedMap.put(entry.getKey(), entry.getValue());
}
System.out.println(sortedMap);