public class MapUtils {// Map的value值降序排序public static <K, V extends Comparable<? super V>> Map<K, V> sortDescend(Map<K, V> map) {List<Map.Entry<K, V>> list = new ArrayList<>(map.entrySet());list.sort((o1, o2) -> {int compare = (o1.getValue()).compareTo(o2.getValue());return -compare;});Map<K, V> returnMap = new LinkedHashMap<>();for (Map.Entry<K, V> entry : list) {returnMap.put(entry.getKey(), entry.getValue());}return returnMap;}// Map的value值升序排序public static <K, V extends Comparable<? super V>> Map<K, V> sortAscend(Map<K, V> map) {List<Map.Entry<K, V>> list = new ArrayList<>(map.entrySet());list.sort(Map.Entry.comparingByValue());Map<K, V> returnMap = new LinkedHashMap<>();for (Map.Entry<K, V> entry : list) {returnMap.put(entry.getKey(), entry.getValue());}return returnMap;}
}
因为结果要求是有序的,所以返回的类型必须是LinkedHashMap