【发布时间】:2020-03-14 14:15:57
【问题描述】:
我目前正在研究一个以 Map[String, List[String]] 和 String 作为参数的函数。该地图包含用户 ID 和他们喜欢的电影的 ID。我需要做的是,返回一个 List[List[String]] ,其中包含喜欢传递给函数的电影的用户喜欢的其他电影。
函数声明如下:
def movies(m: Map[String, List[String]], mov: String) : List[List[String]]= {
}
让我们想象一下:
val m1 : [Map[Int, List[String]]] = Map(1 ‐> List("b", "a"), 2 ‐> List("y", "x"), 3 ‐> List("c", "a"))
val movieID = "a"
movies(m1, movieId)
这应该返回:
List(List("b"), List("c"))
我尝试过使用
m1.filter(x => x._2.contains(movieID))
所以只有包含movieID 的列表会保留在地图中,但我的问题是我需要从它出现的每个列表中删除movieID,然后将结果作为List[List[String]] 返回。
【问题讨论】:
标签: scala list dictionary filter scala-collections