Home
Scala
Set Examples: contains, intersect
Updated Dec 15, 2023
Dot Net Perls
Set. In Scala programs we often need to track unique elements—ones not already encountered. A set allows only distinct elements—it eliminates duplicates.
Operators. With special operators, like "++," we combine sets. In the two sets, any duplicate elements will be lost. Scala 3.3 provides the Set type with simple syntax.
First example. This example uses a Set. It adds two elements to the set in the first line. With val we specify that our "animals" variable cannot be reassigned to something else.
Note The set is immutable. To modify a set in Scala we can only create a new set, such as with a special operator.
Note 2 The contains() method returns true or false. It tells us whether the argument exists within the set.
object Program { def main(args: Array[String]): Unit = { // Create a Set of two strings. val animals = Set("bird", "fish") println(animals) // See if this string is in the set. if (animals.contains("fish")) { println(true) } // This string is not contained in the set. println(animals.contains("apple")) } }
Set(bird, fish) true false
Combine set. Sets are immutable, so we cannot add or remove single elements of the existing collection. Instead we must create new sets with operators or methods.
Here We use the "++" operator to combine two sets. Both sets have 15 as an element, and the resulting set has one instance of this value.
object Program { def main(args: Array[String]): Unit = { // Create two sets. val results1 = Set(10, 11, 15) val results2 = Set(2, 3, 15) // Combine the sets. // ... This eliminates duplicate elements. // Ordering of elements is not retained. val results3 = results1 ++ results2 // Display all sets. println(results1) println(results2) println(results3) } }
Set(10, 11, 15) Set(2, 3, 15) HashSet(10, 2, 3, 11, 15)
Intersect. The intersection of two sets is the common elements of both sets. We compute an intersection with intersect() or an ampersand. Both map to the same function.
Info Set theory is an important part of mathematics. But for programs, it usually just makes some operations easier.
object Program { def main(args: Array[String]): Unit = { val codes1 = Set(20, 21, 30) val codes2 = Set(40, 20, 30) // Use intersect to find common elements of two sets. val result1 = codes1.intersect(codes2) println(result1) // Short syntax for intersection. val result2 = codes1 & codes2 println(result2) } }
Set(20, 30) Set(20, 30)
Summary. Set logic is helpful in some programs. A set is a map with no values: it can store a hashed lookup table of distinct keys. But no associated values may be added.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Dec 15, 2023 (edit).
Home
Changes
© 2007-2025 Sam Allen