规则:按value升序,若value相等,按key降序
import java.util.*;
public class HashMapSort{
public static void main(String[] args) {
Map<Integer, Integer> map = new HashMap<>();
map.put(10, 5);
map.put(11, 2);
map.put(12, 1);
map.put(13, 4);
map.put(14, 5);
List<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
list.sort(new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
if (o1.getValue() == o2.getValue()) {
return o2.getKey() - o1.getKey();
}
return o1.getValue() - o2.getValue();
}
});
for (Map.Entry<Integer, Integer> entry : list) {
System.out.println(entry.getKey()+" "+entry.getValue());
}
}
}