输入信息(地图键:值)
"a":["e","c","d"]
"b":["c"]
所需的排序输出:
"a,c"
"a,d"
"a,e"
"b,c"
答案 0 :(得分:1)
您可能正在寻找的是使用flatMap以及经过调整的一种值,以比较转换后的整数值为:
average = sum / 3.0;
答案 1 :(得分:1)
为保持可读性,最好将代码分成两种方法,以免内联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)
}
答案 2 :(得分:0)
不确定这是否是完美的解决方案,但它是否有效。
map.entrySet().stream()
.map(entry.getValue().stream()
.sorted()
.map(value->entry.getKey()+","+value)
.collect(Collectors.joining("\n"))
)
.sorted()
.collect(Collectors.joining("\n"));