Чтобы обеспечить удобочитаемость, лучше разбить код на два метода, чтобы вы не включили логику flatMap
:
public List<String> toPairs(Map<String, Set<String> map) {
return map.entrySet().stream()
.flatMap(this::entryPairs)
.sorted() // if you want the whole output to be sorted
.collect(Collectors.toList())
}
private Stream<String> entryPairs(Map.Entry<String, Set<String>> entry) {
return entry.getValue().stream()
// .sorted() // you can sort the values for each key here, but this is useless if you're sorting above
.map(v -> entry.getKey() + ',' + v)
}