我需要合并地图mapA和mapB成对的"名称" - "电话号码"到最终地图中,将重复键的值粘在一起,用逗号分隔.重复值只应添加一次.在语言方法方面,我需要最惯用和最正确的方法.
例如:
val mapA = mapOf("Emergency" to "112", "Fire department" to "101", "Police" to "102")
val mapB = mapOf("Emergency" to "911", "Police" to "102")
Run Code Online (Sandbox Code Playgroud)
最终结果应如下所示:
{"Emergency" to "112, 911", "Fire department" to "101", "Police" to "102"}
Run Code Online (Sandbox Code Playgroud)
这是我的功能:
fun mergePhoneBooks(mapA: Map<String, String>, mapB: Map<String, String>): Map<String, String> {
val unionList: MutableMap <String, String> = mapA.toMutableMap()
unionList.forEach { (key, value) -> TODO() } // here's I can't come on with a beatiful solution
return unionList
}
Run Code Online (Sandbox Code Playgroud) 在列表中,我需要用这个元素和所有先前元素的总和替换每个元素.第一个元素不需要更改.示例:必须转换列表(1.0,2.0,3.0,4.0)(1.0,3.0,6.0,10.0).我正在寻找最简洁和正确的方法.
我谷歌上搜索了很长时间,无法找到任何有关元素转换的有用信息.另外,我在Kotlinlang.org的标准库中找不到所需的功能.请帮忙解决这个问题.
fun accumulate(list: MutableList<Double>): MutableList<Double> {
if (list.isEmpty()) return list
else for (i in 0 until list.size) {
if (i == list.indexOf(list.first())) list[i] = list.first()
else list[i] = list.sumByDouble { it } // here's my problem
}
return list
}
Run Code Online (Sandbox Code Playgroud)