我有一个新手问题。
我们可以使用contains
检查地图是否包含指定的密钥,如:
val map = Map("a"->"1", "b"->"")
map.contains("a")
但是现在,我想检查地图是否包含空字符串,是否有任何方法可供使用?
答案 0 :(得分:12)
尝试
map.values.exists(_ == "")
编辑:我认为上面是最清楚的,但我无法抗拒展示另外两个。
map.exists(_._2 == "")
更紧凑,但你必须记住,迭代地图时_2是值。
map.values.exists(""==)
是原始的替代形式,而不是明确地将参数与_ == ""
进行比较,而是提供等式函数"".equals _
或""==
。 (两种看待同一事物的方法 - 是空字符串提供其等于测试的方法,还是你的封闭测试元素对空字符串?我认为后者(原始)是相当清晰的。)< / p>
答案 1 :(得分:0)
你可以这样做:
map.values.toSet.contains("")
或:
map find { case (a,b) => b == "" } isDefined
答案 2 :(得分:-1)
或者你可以写:
map contains ""