我有一个Map [String,Double]列表,我想将它们的内容合并到一个Map [String,Double]中.我该如何以惯用的方式做到这一点?我想我应该可以用折叠来做到这一点.就像是:
val newMap = Map[String, Double]() /: listOfMaps { (accumulator, m) => ... }
Run Code Online (Sandbox Code Playgroud)
此外,我想以通用的方式处理关键冲突.也就是说,如果我向已经存在的地图添加一个键,我应该能够指定一个返回Double的函数(在这种情况下)并获取该键的现有值,加上我试图添加的值.如果地图中尚不存在该关键字,则只需添加该关键字并使其值不变.
在我的具体情况下,我想构建一个Map [String,Double],这样如果地图已经包含一个键,那么Double将被添加到现有的地图值中.
我在我的特定代码中使用可变映射,但如果可能的话,我对更通用的解决方案感兴趣.