如何仅获取 Scala 集合中特定类型的元素?

How to get only elements of a specific type in a collection in Scala?

我在 Scala 中有一个值,它是 LongDouble 元组的 Set,我必须将 Long 值分配给一个新集合才能寻找它与另一组 Long 值的交集。

所以我的布景是

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

我想将 firstSetLong 值放入一个新集合中,以应用以 secondSet 作为参数的相交方法。

有没有可能以一种有效的方式做到这一点?我是 Scala 的新手,所以我不想做一堆嵌套的 If 语句。

使用map从每个元组中获取第一个Long值并创建一个新集合。请注意元组中的元素是使用 ._1._2 等进行访问的。

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)

然后你用这个结果与另一个集合相交