如何检查映射中是否包含scala中的空字符串值?

时间:2011-02-28 14:32:01

标签: scala map

我有一个新手问题。

我们可以使用contains检查地图是否包含指定的密钥,如:

val map = Map("a"->"1", "b"->"")
map.contains("a")

但是现在,我想检查地图是否包含空字符串,是否有任何方法可供使用?

3 个答案:

答案 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 ""