【发布时间】:2016-11-11 15:29:23
【问题描述】:
我有一个Map[Int, Set[Int]],并且给定一个项目,我想返回索引到该项目所在的集合的键。例如,如果我有一个Map(1 -> Set("a"), 2 -> Set("b"), 3 -> Set("c","z"))。假设项目是"z" 我想返回3 因为3 是索引到包含3 的集合的键。
这是我目前拥有的,但我似乎找不到获取密钥的好方法。我只能得到价值,Set[Int]。假设该项目将仅在一个可能的集合中。
def find(djs: Map[Int, Set[Int]], item: Int) :Int = {
for ((key, set) <- djs) {
if (set.contains(item)) {
key
}
}
【问题讨论】:
-
如果item在多个key下,你想返回什么?
-
你的意思是Set("c", "z"),还是真的是1个字符串的集合?
-
@jwvh 假设该项目将仅在一个可能的集合中,否则没有。我添加到问题中。
-
@soote 我编辑了问题,我的意思是 Set("c", "z")。
-
似乎您以错误的方式使用地图...为什么不保留一个地图(另一个?)将一个元素映射到它所在的集合?或者可能是
Map[Int, (Int, Set[Int]),其中第二个 Int 是您正在寻找的关键..
标签: scala dictionary set