scala - 如何将元组的 Seq 转换为单个元素的集合 Scala
问题描述
我们有一个元组序列Seq(department, title
)depTitleSeq
我们想要提取Set(department)
并Set(title)
寻找到目前为止我们能想出的最佳方法是
val depTitleSeq = getDepTitleTupleSeq()
var departmentSeq = ArrayBuffer[String]()
var titleSeq = ArrayBuffer[String]()
for (depTitle <- depTitleSeq) yield {
departmentSeq += depTitle._1
titleSeq += depTitle._2
}
val depSet = departmentSeq.toSet
val titleSet = titleSeq.toSet
对 scala 来说相当新,我相信有更好、更有效的方法来实现这一点,如果你能指出正确的方向,这将有很大帮助
解决方案
如果你有两个Seq
想要组合成一个Seq
元组的数据,你可以zip
把它们放在一起。
如果您有一个Seq
元组并且您希望将元素分开,那么您可以使用unzip
它们。
val (departmentSeq, titleSeq) = getDepTitleTupleSeq().unzip
val depSet :Set[String] = departmentSeq.toSet
val titleSet :Set[String] = titleSeq.toSet
推荐阅读
- web-scraping - 如何在Text + 之间提取文本然后对列中的文本进行排序
- image - 重新绘制图像时出现白色闪烁[颤动]
- mongoose - 将 Mongoose 模型模式类型定义为 ObjectId,但有异常
- kotlin - Kotlin协程构建器,还有其他的吗?
- git - 将提取的 ID 从 power shell 中的 git show 转换为更低
- java - 以编程方式安装 apk 自动更新我的应用程序
- onchange - 将复选框布尔值传递给父反应组件
- c - 我可以在 C 中使用 GNU GSL BLAS 在稀疏矩阵和密集(正则)矩阵之间应用矩阵乘法吗?
- javascript - 在自定义 React 钩子中使用 fetch - 数据获取两次
- android - 禁用应用程序在崩溃时自动重启(调试版本)