Скажем, у меня есть такие случаи.
case class someClass0(content: someClass1)
case class someClass1(someContent: Option[Map[String, someClass2]])
case class someClass2(someKey: Array[Int])
Мне нужно удалить элементы на карте (которые являются неизменяемыми) по значениям.
Это значения, которые я получаю с помощью итерации.
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)
не работает. Что я делаю не так?