11.25. Deleting Elements from Sets
Problem
You want to remove elements from a mutable or immutable set.
Solution
Mutable and immutable sets are handled differently, as demonstrated in the following examples.
Mutable set
When working with a mutable Set
, remove elements from the set using the
-=
and --=
methods, as shown in the following
examples:
scala>var set = scala.collection.mutable.Set(1, 2, 3, 4, 5)
set: scala.collection.mutable.Set[Int] = Set(2, 1, 4, 3, 5) // one element scala>set -= 1
res0: scala.collection.mutable.Set[Int] = Set(2, 4, 3, 5) // two or more elements (-= has a varags field) scala>set -= (2, 3)
res1: scala.collection.mutable.Set[Int] = Set(4, 5) // multiple elements defined in another sequence scala>set --= Array(4,5)
res2: scala.collection.mutable.Set[Int] = Set()
You can also use other methods like retain
, clear
, and remove
, depending on your needs:
// retain scala>var set = scala.collection.mutable.Set(1, 2, 3, 4, 5)
set: scala.collection.mutable.Set[Int] = Set(2, 1, 4, 3, 5) scala>set.retain(_ > 2)
scala>set
res0: scala.collection.mutable.Set[Int] = Set(4, 3, 5) // clear scala>var set = scala.collection.mutable.Set(1, 2, 3, 4, 5)
set: scala.collection.mutable.Set[Int] = Set(2, 1, 4, 3, 5) scala>set.clear
scala>set
res1: scala.collection.mutable.Set[Int] = Set() // remove scala>var set = scala.collection.mutable.Set(1, 2, 3, 4, 5)
set: scala.collection.mutable.Set[Int] = Set(2, 1, 4, 3, 5) scala>set.remove(2)
res2: Boolean = true scala>set
res3: scala.collection.mutable.Set[Int] ...
Get Scala Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.