如何检查Map中是否存在键值对组合
How to check if combination of key,value pair exists in Map
我正在尝试解决一个问题,我想检查 Map 中是否存在键值对
我有这样的地图:
val codemap = new Map[String, List[String]]
我想用静态值制作地图
val codeMap = Map(
"Asset Banking" -> List("audio","doc"),
"avalon" -> List("adaptive-module", "ebook-plus")
)
我有 2 个动态变量:
val a: Option[String] = Option("Asset Banking")
val b: Option[String] = Option("audio")
我想检查是否存在 a 和 B 的组合:
我能想到的逻辑是
if(codemap.key.contains (a))
{
if(codemap.values exist for above key)
then do something
}else
{
do something
}
这是解决这个问题的好方法吗?
这是流数据 a
,b
是来自流的字段
我想根据 a
、b
的值填充 table 中的第三个字段,称之为 c
a
,b
需要是将存储在地图中的某种组合。
find
可以对地图中每个元素的 key
和 value
进行操作,如果该值存在于地图中,则返回 Option
。
scala> codeMap.find({case (a,b) => a == "Asset Banking" && b == List()})
res14: Option[(String, List[String])] = None
scala> codeMap.find({case (a,b) => a == "Asset Banking" && b == List("audio", "doc")})
res15: Option[(String, List[String])] = Some((Asset Banking,List(audio, doc)))
尝试
(for {
k <- a
v <- b
l <- codeMap.get(k)
} yield {
l.contains(v)
}).getOrElse(false)
如果找到组合则输出 true
,否则 false
.
我正在尝试解决一个问题,我想检查 Map 中是否存在键值对 我有这样的地图:
val codemap = new Map[String, List[String]]
我想用静态值制作地图
val codeMap = Map(
"Asset Banking" -> List("audio","doc"),
"avalon" -> List("adaptive-module", "ebook-plus")
)
我有 2 个动态变量:
val a: Option[String] = Option("Asset Banking")
val b: Option[String] = Option("audio")
我想检查是否存在 a 和 B 的组合:
我能想到的逻辑是
if(codemap.key.contains (a))
{
if(codemap.values exist for above key)
then do something
}else
{
do something
}
这是解决这个问题的好方法吗?
这是流数据 a
,b
是来自流的字段
我想根据 a
、b
c
a
,b
需要是将存储在地图中的某种组合。
find
可以对地图中每个元素的 key
和 value
进行操作,如果该值存在于地图中,则返回 Option
。
scala> codeMap.find({case (a,b) => a == "Asset Banking" && b == List()})
res14: Option[(String, List[String])] = None
scala> codeMap.find({case (a,b) => a == "Asset Banking" && b == List("audio", "doc")})
res15: Option[(String, List[String])] = Some((Asset Banking,List(audio, doc)))
尝试
(for {
k <- a
v <- b
l <- codeMap.get(k)
} yield {
l.contains(v)
}).getOrElse(false)
如果找到组合则输出 true
,否则 false
.