Question

I need to write a function that returns true if a set (this set is the output of another function) contains 1 element and otherwise it leaves the set as it is.

For example:

Set(1) returns a specific result and Set(2,4) returns the set as it is.

How can I check how many elements a set contains?

Was it helpful?

Solution

You just need the size method on a Set:

scala> Set(1).size
res0: Int = 1

scala> Set(1,2).size
res1: Int = 2

See also the documentation for Set.

Let's say your other function is called getSet. So all you need to do is call it, then check the size of the resulting Set, and return a value depending on that size. For example, I shall assume that if the set's size is 1, we need to return a special value (a Set containing the value 99) - but just replace this with whatever specific result you actually need to return.

def mySet = {
  val myset = getSet()
  if (myset.size == 1) Set(99)  // return special value
  else myset  // return original set unchanged
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top