Start learning free

LESSON 114 OF 677 · ARRAYS I

Checking an ArrayBuffer for a Value in Scala

Lesson

TL ; DR:

buf.contains(x) is true when the ArrayBuffer holds x, and false when it doesn't. Use it as the condition of an if.


val colors = scala.collection.mutable.ArrayBuffer("red", "green", "blue")

println(colors.contains("red"))    // true
println(colors.contains("pink"))   // false

if (!colors.contains("pink")) {
    println("No pink yet")
}


Full lesson:

Often you need to know if an ArrayBuffer holds some value. Is this name on the guest list? Is this item in the cart?

contains(x) answers that. It compares each item with x, from the first one on. It returns true as soon as one matches, or false if none does.

Put ! in front for the opposite. So !colors.contains(x) is true when x is missing.

The answer is a Boolean, so it fits right into an if:

val cart = scala.collection.mutable.ArrayBuffer("milk", "bread")

if (cart.contains("milk")) {
    println("Milk is in the cart")
}

Scala has no in keyword for this. Ask the collection itself with contains.

Text must match exactly. So colors.contains("Red") is false, because the ArrayBuffer has "red".


Your task

bag holds what is packed for a hike.

If "water" is in bag, print Water is packed. If "tent" is not in bag, print Pack a tent.

Expected output:

Water is packed
Pack a tent
STEP 1 OF 2
    Ctrl + Enter to check