使用Java 8 Streams对Map的值(Set-> SortedSet)进行排序

时间:2019-03-08 18:14:32

标签: java java-stream hashset sortedset

如何对Map<String, Set<String>>的值进行排序,即使用流转换为Map<String, SortedSet<String>>?

1 个答案:

答案 0 :(得分:1)

只需遍历每个条目,然后将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())));