map.forEach((key, value) -> System.out.println("key:" + key + ",value:"+ value));
System.out.println("-------");
HashMap res = map.entrySet().stream().sorted((e1, e2) -> compare(e1, e2))
.collect(toMap(Map.Entry :: getKey, Map.Entry :: getValue, (oldvalue, newvalue) -> oldvalue, LinkedHashMap :: new));
res.forEach((key,value) -> System.out.println("key:"+ key + ",value:" + value));
public static int compare(Map.Entry<Character,Integer>e1,Map.Entry<Character,Integer>e2){
int re = e2.getValue().compareTo(e1.getValue());
if(re!=0){return re;}
else{return e1.getKey().compareTo(e2.getKey());}
}