假设我有一个不可变的Scala Map[(String, Boolean), Set[String]]
,例如:
val myMap = Map(("a",true) -> Set("b","c"))
现在假设我只知道关键元组的第一个元素,
"a"
.在以下情况下,我可以(以及如果是的话如何)获取此键的 map 值:1) 我知道 key 可以是
("a", true)
或 ("a", false)
(不能有两个键与第一个元素具有相同的字符串)2)我不知道,在这种情况下,我希望对可能的两个值进行某种连接,例如
v1.union(v2)
或 v1 ++ v2
, 等等。有没有我可以使用的Scala“魔法”,比如
myMap.get(("a", Any))
?
最佳答案
一般来说,哈希映射不是那样工作的,至少是有效的——您仍然可以线性扫描映射并选择匹配条件的第一个键。在您的特定情况下,您可以简单地尝试查找记录两次 - 首先是 (key, true)
, 那么如果什么都没有找到 (key, false)
关于scala - 当键是一个只有第一个元素已知的元组时,如何获取 scala Map 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31746062/