scala - 当键是一个只有第一个元素已知的元组时,如何获取 scala Map 值?

标签 scala key tuples

假设我有一个不可变的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/

相关文章:

scala - 抽象类,为什么不能声明私有(private)的val和var类成员?

Java key 转换无法正常工作

php:如何从数字索引中获取关联数组键?

string - 在 Swift 中使用变量选择元组索引

c++ - 是否有一个元组 for_each() 返回从调用的函数返回的所有值的元组?

scala - 在 Scala 中选择正确的异常处理

java - 覆盖需要双数组的 java 方法

Scala 集合将 var 映射到另一个值

python - 从键列表中获取字典中的所有值,其中相同的键多次出现

TypeScript: `| [T]` 的含义 - 用于编译时检查数组中元素成员身份的约束