【发布时间】:2019-05-28 21:27:51
【问题描述】:
我有一个包含一些计算值的 Map,在从 Stream 读取期间,我想根据某些条件将其中的一些(键、值)放入此映射。
如何用简洁的代码实现它?
我在想这样的事情:
var newcards = scala.collection.mutable.Map[String, String]()
var allCards = scala.collection.mutable.Map[String, String]()
...
newCards.filter(some_condition).append((k:String, v:String) => allCards.put(k, v))
// append method is not present
【问题讨论】:
-
allCards = allCards ++ newcards.filter(condition)重复键下的值将被覆盖,你真的不应该使用可变变量。 -
您要添加一些键、值对还是只为特定键添加值?
-
@RamanMishra 添加键+值
-
@jwvh 谢谢!我正在寻找一些单线。有没有办法在链式调用中做同样的事情(不是赋值),只是“收集到”语义?
-
@AlexStamper;你的意思是这样的:
newcards.filter(condition).foreach((allCards.update _).tupled)? (呃,所有这些变量。我得去洗手了。)
标签: scala dictionary scala-collections