package com.csdn.exam.seventh; import java.util.Arrays; import java.util.Comparator; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class Frequency { /** * @param args */ @SuppressWarnings("unchecked") public static void main(String[] args) { // TODO Auto-generated method stub String str = "abadcdffbaeba"; char[] chars = str.toCharArray(); Map<String, Integer> map = new TreeMap<String, Integer>(); for (char b : chars) { int i = 0; if (null == map.get(String.valueOf(b))) { for (char ch : chars) { if (ch == b) { i++; } } map.put(String.valueOf(b), i); } } Map.Entry[] entries =getSortedHashtableByValue(map); for (int i = 0; i < entries.length; i++) { System.out.println(entries[i].getKey()+ " : " +entries[i].getValue() ); } } //map根据value排序 @SuppressWarnings("unchecked") public static Map.Entry[] getSortedHashtableByValue(Map h) { Set set = h.entrySet(); Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set .size()]); Arrays.sort(entries, new Comparator() { public int compare(Object arg0, Object arg1) { Long key1 = Long.valueOf(((Map.Entry) arg0).getValue() .toString()); Long key2 = Long.valueOf(((Map.Entry) arg1).getValue() .toString()); return key1.compareTo(key2); } }); return entries; } }