TreeMap不能按值排序.
下面rsMap是排序后的结果.        Map<Integer, String> map = new TreeMap<Integer, String>();
        map.put(20, "abc");
        map.put(13, "ggg");
        map.put(40, "qqq");
        map.put(12, "yyy");
        List<Map.Entry<Integer, String>> list = new ArrayList<Map.Entry<Integer, String>>();
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            list.add(entry);
        }
        java.util.Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
            
            @Override
            public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
                return o1.getValue().compareTo(o2.getValue());
            }
        });
        Map<Integer, String> rsMap = new LinkedHashMap<Integer, String>();
        for (Map.Entry<Integer, String> entry : list) {
            rsMap.put(entry.getKey(), entry.getValue());
        }