【发布时间】:2020-08-04 05:44:24
【问题描述】:
假设我有这样的案例类。
case class someClass0(content: someClass1)
case class someClass1(someContent: Option[Map[String, someClass2]])
case class someClass2(someKey: Array[Int])
我需要按值删除 Map(不可变)中的项目。
这个值是我通过迭代得到的。
val keys_to_remove = new ListBuffer[String]()
val keys_to_keep: List[Int] = List(100, 200)
for (x <- keys_to_keep) {
content.someContent.get.foreach {
case (key: String, value: someClass2) => {
if (!value.someKey.contains(x)) {
keys_to_remove.append(key)
}
}
}
}
那么,如何保留所有结构,只删除需要的项目呢?
我试图改变地图的类型
content.someContent.map(_.to(collection.mutable.Map))
但是content.someContent.get.remove(key) 不起作用。
我做错了什么?
【问题讨论】: