如何仅获取 Scala 集合中特定类型的元素?
How to get only elements of a specific type in a collection in Scala?
我在 Scala 中有一个值,它是 Long
和 Double
元组的 Set
,我必须将 Long 值分配给一个新集合才能寻找它与另一组 Long 值的交集。
所以我的布景是
firstSet : Set[(Long, Double)]
secondSet : Set[Long]
我想将 firstSet
的 Long
值放入一个新集合中,以应用以 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)
然后你用这个结果与另一个集合相交
我在 Scala 中有一个值,它是 Long
和 Double
元组的 Set
,我必须将 Long 值分配给一个新集合才能寻找它与另一组 Long 值的交集。
所以我的布景是
firstSet : Set[(Long, Double)]
secondSet : Set[Long]
我想将 firstSet
的 Long
值放入一个新集合中,以应用以 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)
然后你用这个结果与另一个集合相交