如何检查Map中是否存在键或值?

9 浏览
0 Comments

如何检查Map中是否存在键或值?

我有一个scala的Map,并且想测试是否在map中存在某个特定的值。

myMap.exists( /*这里应该放什么*/ )

0
0 Comments

问题的出现原因是想要在Map中检查键或值是否存在。解决方法是使用isDefinedAt函数来检查键是否存在。

myMap isDefinedAt key

这个方法可以用来检查Map中的键是否存在。如果键存在,则返回true,否则返回false。

0
0 Comments

在Map中检查键或值是否存在有几种不同的选项,具体取决于你的意思。

如果你的意思是“值”是指键值对,则可以使用以下代码:

myMap.exists(_ == ("fish",3))
myMap.exists(_ == "fish" -> 3)

如果你的意思是指键值对的“值”,则可以使用以下代码:

myMap.values.exists(_ == 3)
myMap.exists(_._2 == 3)

如果你只想测试“键”是否存在,则可以使用以下代码:

myMap.keySet.exists(_ == "fish")
myMap.exists(_._1 == "fish")
myMap.contains("fish")

需要注意的是,尽管元组形式(例如_._1 == "fish")更短,但稍长的形式更明确地说明你想要发生的情况。

还值得一提的是,为了测试键的存在,库提供了myMap.contains("fish")。

- 确实。我只是使用了“exists”,但这个很重要(因为这是你应该使用的方式),所以我已经对答案进行了修改。

0
0 Comments

问题的出现原因是在Scala中,Map的exists方法接收一个谓词函数作为参数,该函数对该Map的元素进行测试并返回一个布尔值,指示是否存在满足谓词的元素。然而,在测试键或值是否存在时,我们可能会遇到一些困惑。

解决方法是使用exists方法的参数来检查键或值是否存在。在给定的示例中,通过传递一个谓词函数来检查键是否存在。例如,mymap.exists(_._1 == 7) 将返回true,因为Map中存在键为7的元素。同样,我们也可以通过传递一个谓词函数来检查值是否存在。例如,mymap.exists(x => x._2 == "lala") 将返回true,因为Map中存在值为"lala"的元素。

要检查Map中的键或值是否存在,我们可以使用Map的exists方法,并通过传递适当的谓词函数来进行测试。谓词函数可以检查键或值是否满足我们的条件,并返回相应的布尔值。

0