Collections
Set Membership
Check whether a set contains a value.
set-membership
A set records whether a value is present. It is useful when only membership matters.
Set Membership
SetMembership.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val word = "api"
val allowed = Set("api", "cli")
val present = allowed.contains(word)
val label = if (present) "allowed" else "blocked"
println("word=" + word)
println("present=" + present)
println("label=" + label)
}
}
object Main {
def main(args: Array[String]): Unit = {
val word = "cli"
val allowed = Set("api", "cli")
val present = allowed.contains(word)
val label = if (present) "allowed" else "blocked"
println("word=" + word)
println("present=" + present)
println("label=" + label)
}
}
object Main {
def main(args: Array[String]): Unit = {
val word = "web"
val allowed = Set("api", "cli")
val present = allowed.contains(word)
val label = if (present) "allowed" else "blocked"
println("word=" + word)
println("present=" + present)
println("label=" + label)
}
}
word ← api, allowed ← Set(api, cli), present ← true, label ← allowed
1object Main {2 def main(args: Array[String]): Unit = {3 val word→ api = "api" //@word="cli", "web"4 val allowed→ Set(api, cli) = Set("api", "cli")5 val present→ true = allowedSet(api, cli).contains(wordapi)6 val label→ allowed = if (presenttrue) "allowed" else "blocked"78 println("word=" + wordapi)9 println("present=" + presenttrue)10 println("label=" + labelallowed)11 }12}outputword=api present=true label=allowed
word ← cli, allowed ← Set(api, cli), present ← true, label ← allowed
1object Main {2 def main(args: Array[String]): Unit = {3 val word→ cli = "cli"4 val allowed→ Set(api, cli) = Set("api", "cli")5 val present→ true = allowedSet(api, cli).contains(wordcli)6 val label→ allowed = if (presenttrue) "allowed" else "blocked"78 println("word=" + wordcli)9 println("present=" + presenttrue)10 println("label=" + labelallowed)11 }12}outputword=cli present=true label=allowed
word ← web, allowed ← Set(api, cli), present ← false, label ← blocked
1object Main {2 def main(args: Array[String]): Unit = {3 val word→ web = "web"4 val allowed→ Set(api, cli) = Set("api", "cli")5 val present→ false = allowedSet(api, cli).contains(wordweb)6 val label→ blocked = if (presentfalse) "allowed" else "blocked"78 println("word=" + wordweb)9 println("present=" + presentfalse)10 println("label=" + labelblocked)11 }12}outputword=web present=false label=blocked
Check Membership
- The allowed set contains
apiandcli. wordisapi.contains(word)returnstrue.- The label becomes
allowed. | Word | Present? | Label | | --- | --- | --- | |api|true|allowed| |web|false|blocked|
Exercise: SetMembership.scala
Check whether a word is in an allowed set and print the membership label