Как отсортировать map по значению java
Ответы
Сергей Якимович
01 декабря 2022
Отсортировать мап по значению можно преобразовав ее в LinkedHashMap
или TreeMap
:
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Collectors;
public class App {
public static void main(String[] args) {
Map<String, Integer> myMap = Map.of("Ivan", 2000, "Petr", 1990, "Egor", 1995);
Map<String, Integer> sortedMap1 = myMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(a, b) -> a,
LinkedHashMap::new
));
System.out.println(sortedMap1); // => {Petr=1990, Egor=1995, Ivan=2000}
Map<String, Integer> sortedMap2 = new TreeMap<String, Integer>(
Comparator.comparing(myMap::get));
sortedMap2.putAll(myMap);
System.out.println(sortedMap2); // => {Petr=1990, Egor=1995, Ivan=2000}
}
}
1
0