我有一個Map[Int, Set[Int]]
並給定了一個項目,我想返回索引到Set where項目所在的鍵。例如,如果我有一個Map(1 -> Set("a"), 2 -> Set("b"), 3 -> Set("c","z"))
。假設該項目是"z"
我想返回3
,因爲3
是索引到包含3
的集合的關鍵字。 這是我目前擁有的,但我似乎無法找到獲得鑰匙的好方法。我只能得到這個值,Set[Int]
。假設該項目將只在一個可能的集合中。如果你需要返回一個或None
然後Option[]
將要走的路Scala:如何返回包含項值的項的值,其值是Set?
def find[A, B](m: Map[A, Set[B]], item: B): Option[A] =
m.find { case (key, set) => set.contains(item) }
.map { case (key, set) => key }
你這是什麼想要返回項目是否在多個鍵下? – jwvh
你的意思是設置(「c」,「z」),還是它真的是一個字符串? – soote
@jwvh假設該項目將只在一個可能的集合中,否則就沒有。我加入了這個問題。 –