Назад к вопросам
Senior
5
Задача на Java Streams: отсортировать Map<String, Integer> по значению с помощью стримов
Компании, где спрашивали
Сбер Право
Ответ от нейросети
sobes.tech AI
Для сортировки Map<String, Integer> по значению с помощью Java Streams можно сделать так:
import java.util.*;
import java.util.stream.*;
public class SortMapByValue {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 3);
map.put("banana", 1);
map.put("orange", 2);
// Сортируем по значению и собираем в LinkedHashMap для сохранения порядка
Map<String, Integer> sorted = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e1,
LinkedHashMap::new
));
System.out.println(sorted); // {banana=1, orange=2, apple=3}
}
}
Здесь мы создаём стрим из entrySet, сортируем по значению с помощью Map.Entry.comparingByValue(), а затем собираем результат в LinkedHashMap, чтобы сохранить порядок элементов.