A cool thing about Scala sets — and some other Scala collections — is that you can easily determine the union, intersection, and difference between two sets. The following examples demonstrate how the methods work.
Sample data
First, we create two sets that have a slight overlap:
scala> val low = 1 to 5 toSet low: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4) scala> val medium = (3 to 7).toSet medium: scala.collection.immutable.Set[Int] = Set(5, 6, 7, 3, 4)
Union
Now we exercise the methods. First, the union:
scala> val uniq = low.union(medium) uniq: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 7, 3, 4)
Intersection
Next we check the intersection with the intersect method:
scala> val i = low.intersect(medium) i: scala.collection.immutable.Set[Int] = Set(5, 3, 4)
Differences
Those methods should give you the same results regardless of which object invokes the methods. However, the results from the difference method (diff, actually) will vary depending on which object you call the diff method:
scala> val diff = low.diff(medium) diff: scala.collection.immutable.Set[Int] = Set(1, 2) scala> val diff = medium.diff(low) diff: scala.collection.immutable.Set[Int] = Set(6, 7)
Summary
That's today’s quick examples of the Scala Set class union, intersect, and diff methods. I hope it was helpful.
For more information on the Scala Set classes, see the Scaladoc:










