我有两个列表:
val generalInfo = List[GeneralInfo]
val countInfo = List[CountInfo]
case class GeneralInfo(id: String, source: String, languages: Array[String], var count: BigDecimal)
case class CountInfo(id: String, count: BigDecimal)
每个GeneralInfo
对象都用count = 0
初始化;
当它们的ID相同时,我需要用GeneralInfo
对象的计数值填写CountInfo
对象的count变量。 (并非GeneralInfo
列表中的所有ID都在CountInfo
列表中)
我对Scala还是很陌生,有什么方法可以不用字典就能优雅地做到这一点?
答案 0 :(得分:1)
如果您知道存在一对一的关系,则可以遍历每个CountInfo
,找到对应的GeneralInfo
对象,然后为该{{1 }}。
count
如果一个ID可以被许多GeneralInfo
对象共享,请使用countInfo.foreach(c => generalInfo.find(_.id == c.id).map(_.count = c.count))
代替GeneralInfo
:
filter
您也可以用另一种方式做到这一点:
find