import java.util.*;
public class Main {
public static void main(String[] args) {
Map<Integer,Integer> sortedMap = new HashMap<>();
sortedMap.put(1,20);
sortedMap.put(2,30);
sortedMap.put(3,10);
sortedMap.put(4,50);
1.true 按value降序
System.out.println(sortByValue(sortedMap,true));
2.false 按value升序
System.out.println(sortByValue(sortedMap,false));
3.true 按key降序
System.out.println(sortByKey(sortedMap,true));
4.false 按key升序
System.out.println(sortByKey(sortedMap,false));
}
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) {
Map<K, V> result = new LinkedHashMap();
if (isDesc) {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed())
.forEach(e -> result.put(e.getKey(), e.getValue()));
} else {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue())
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
}
return result;
}
public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc) {
Map<K, V> result = new LinkedHashMap();
if (isDesc) {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed())
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
} else {
map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey())
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
}
return result;
}
}
力扣刷题——对map进行key、value的升、降序排列
最新推荐文章于 2024-03-13 22:01:43 发布