Сортировка значений (Set -> SortedSet) карты с потоками Java 8 - PullRequest
1 голос
/ 08 марта 2019

Как отсортировать значения Map<String, Set<String>>, т. Е. Преобразовать в Map<String, SortedSet<String>> с потоками?

1 Ответ

1 голос
/ 08 марта 2019

Просто переберите каждую запись и преобразуйте Set<T> (например, HashSet<T>) в SortedSet<T> (например, TreeSet<T>) в:

Map<String, Set<String>> input = new HashMap<>();
Map<String, SortedSet<String>> output = new HashMap<>();
input.forEach((k, v) -> output.put(k, new TreeSet<>(v)));

или с потоками как:

Map<String, Set<String>> input = new HashMap<>();
Map<String, SortedSet<String>> output = input.entrySet().stream()
        .collect(Collectors.toMap(Map.Entry::getKey, a -> new TreeSet<>(a.getValue())));
...