初始map:
Map<String, Integer> map = new HashMap<>(8);
map.put("c", 9);
map.put("a", 8);
map.put("d", 10);
map.put("z", 2);
1. 按照value正序:
Map<String, Integer> collect = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, BinaryOperator.maxBy(Integer::compareTo), LinkedHashMap::new));
2. 按照value倒序:
Map<String, Integer> collect = map.entrySet()
.stream()
.sorted((x, y) -> y.getValue().compareTo(x.getValue()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, BinaryOperator.maxBy(Integer::compareTo), LinkedHashMap::new));
3.按照key正序:
Map<String, Integer> collect = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, BinaryOperator.maxBy(Integer::compareTo), LinkedHashMap::new));
4.按照key倒序:
Map<String, Integer> collect = map.entrySet()
.stream()
.sorted((x, y) -> y.getKey().compareTo(x.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, BinaryOperator.maxBy(Integer::compareTo), LinkedHashMap::new));