4

I have a newbie question.

We can use contains to check if a map contain a specified key, as:

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

But now, I want to check if the map contains an empty string, is there any method to use?

3 Answers 3

12

Try

map.values.exists(_ == "")

Edit: I think the above is the clearest, but I can't resist showing two others.

map.exists(_._2 == "")

is more compact, but you have to remember that _2 is the value when you iterate through a map.

map.values.exists(""==)

is an alternative form of the original, where instead of explicitly comparing the argument with _ == "", you supply an equality function "".equals _ or ""== for short. (Two ways of looking at the same thing--is it the empty string supplying its equals method for testing, or is it your closure testing the elements against the empty string? I think the latter (the original) is considerably clearer.)

Sign up to request clarification or add additional context in comments.

Comments

0

You can do:

map.values.toSet.contains("")

or:

map find { case (a,b) => b == "" } isDefined

Comments

-1

Or you can just write:

map contains ""

1 Comment

This is wrong. He wants to check if the map contains a value with the value "". Not the key as you proposed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.