【发布时间】:2019-08-26 21:14:36
【问题描述】:
在List 上执行parallelStream() 后,我最终得到List<Map<String, Set<String>。我想将其统一为Map<String, Set<String>>(它只会在Maps 的List 中保持唯一性)。
我不熟悉collect 和reduce 函数,所以没有什么可继续的。
现有代码:
private val TYPES = listOf("string", "integer")
private fun getLinesOfEachTypeAcrossMultipleFiles(files: List<File>): Map<String, Set<String>> {
return files
.parallelStream()
.map { file ->
TYPES.associate {
it to getRelevantTypeLinesFromFile(file)
}
}
// Converted into a Stream<String, Set<String>>
// .reduce() / collect() ?
}
private fun getRelevantTypeLinesFromFile(it: File): Set<String> {
// Sample code
return setOf()
}
【问题讨论】:
标签: kotlin java-stream reduce collect