1、代码:
import java.util.*;
import java.util.stream.*;
public class MapSorter {
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean descending) {
Comparator<Map.Entry<K, V>> comparator = Map.Entry.comparingByValue();
if (descending) {
comparator = comparator.reversed();
}
return map.entrySet()
.stream()
.sorted(comparator)
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e1,
LinkedHashMap::new));
}
public static void main(String[] args) {
Map<String, Integer> sampleMap = new HashMap<>();
sampleMap.put("a", 3);
sampleMap.put("b", 1);
sampleMap.put("c", 2);
System.out.println("升序排序: " + sortByValue(sampleMap, false));
System.out.println("降序排序: " + sortByValue(sampleMap, true));
}
}
- 使用Java 8 Stream API进行排序操作
- 通过comparingByValue()创建比较器
- 支持通过参数控制升序/降序
- 使用LinkedHashMap保持排序后的顺序
- 泛型方法支持各种值类型的比较
2、运行结果:


被折叠的 条评论
为什么被折叠?



