/**
* java 8 version 按value排序
*
* @param map 待排序的map
* @param isDesc 是否降序,true:降序,false:升序
* @return 已排序map
*/
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) {
return sortByValue(map,isDesc,map.size());
}
/**
* java 8 version 按value排序
*
* @param map 待排序的map
* @param isDesc 是否降序,true:降序,false:升序
* @param limit 取前几条
* @return 已排序map
*/
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc, int limit) {
Map<K, V> result = new LinkedHashMap<>();
if (isDesc) {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed()).limit(limit)
.forEach(e -> result.put(e.getKey(), e.getValue()));
} else {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue()).limit(limit)
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
}
return result;
}
/**
* java 8 version 按key排序
*
* @param map 待排序的map
* @param isDesc 是否降序,true:降序,false:升序
* @return 已排序map
*/
public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc) {
return sortByKey(map,isDesc,map.size());
}
/**
* java 8 version 按key排序
*
* @param map 待排序的map
* @param isDesc 是否降序,true:降序,false:升序
* @param limit 取前几条
* @return 已排序map
*/
public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc, int limit) {
Map<K, V> result = new LinkedHashMap<>();
if (isDesc) {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed()).limit(limit)
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
} else {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey()).limit(limit)
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
}
return result;
}
map 排序按KEY VALUE
最新推荐文章于 2024-03-13 22:01:43 发布