Scala - 删除键不在给定集中的所有映射

Ale*_*136 1 dictionary scala set

计算映射的惯用方法是什么,映射的映射是另一个映射的映射,没有其键是给定集合成员的映射?

例如,从给定的集合和下图:

Map(A -> v, B -> w, C -> x, D -> y, E -> z)
Set(A, C, E)
Run Code Online (Sandbox Code Playgroud)

我们的功能会产生:

Map(B -> w, D -> y)
Run Code Online (Sandbox Code Playgroud)

cch*_*son 6

您可以使用Map中--方法

def - (xs:GenTraversableOnce [A]):地图[A,B]

通过删除另一个集合的所有元素,从此集合创建一个新集合.

scala> val map = Map("A" -> "v", "B" -> "w", "C" -> "x", "D" -> "y", "E" -> "z")
map: scala.collection.immutable.Map[String,String] = Map(E -> z, A -> v, B -> w, C -> x, D -> y)

scala> val set = Set("A", "C", "E")
set: scala.collection.immutable.Set[String] = Set(A, C, E)

scala> val filter = map -- set
filter: scala.collection.immutable.Map[String,String] = Map(B -> w, D -> y)
Run Code Online (Sandbox Code Playgroud)