Home > front end >  How to get only elements of a specific type in a collection in Scala?
How to get only elements of a specific type in a collection in Scala?

Time:12-05

I have a value in Scala which is a Set of tuples of Long and Double, and I have to assign the Long values to a new set to be able to look for its intersection with another set of Long values.

So my sets would be

firstSet : Set[(Long, Double)]
secondSet : Set[Long]

I want to put the Long values of the firstSet in a new set to apply the intersect method with secondSet as argument.

Is it possible to do it in an efficient way? I'm very new to Scala so I don't just want to do a bunch of nested If statements.

CodePudding user response:

Use map to get the first Long value from each Tuple and create a new set. Note the elements in the Tuple are accesses with ._1, ._2 and so on.

val firstSet = Set((0l,0.0), (1l, 1.0))
val firtSet: Set[(Long, Double)] = Set((0,0.0), (1,1.0))

firstSet.map(t => t._1)
val res5: Set[Long] = Set(0, 1)

Then you use this result to intersect with the other set

  • Related