首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元组匹配的Scala列表

元组匹配的Scala列表
EN

Stack Overflow用户
提问于 2015-05-06 10:23:15
回答 1查看 91关注 0票数 0

我有下面的名单

代码语言:javascript
复制
val listA = List(("tcp",22,"All","sshd"), ("tcp6",22,"All","sshd"), ("tcp6",443,"All","docker-proxy"), ("tcp6",8000,"All","docker-proxy"), ("tcp6",4100,"All","docker-proxy"), ("tcp6",5000,"All","docker-proxy"), ("tcp",5000,"All","docker-proxy"),("tcp6",4200,"All","docker-proxy"), ("tcp6",80,"All","docker-proxy"))

listA类型为List[(String, Int, String, String)],我的预期输出类型为

代码语言:javascript
复制
val output = List(("tcp",22,"All","sshd"), ("tcp6",443,"All","docker-proxy"), ("tcp6",8000,"All","docker-proxy"), ("tcp6",4100,"All","docker-proxy"), ("tcp6",5000,"All","docker-proxy"), ("tcp6",4200,"All","docker-proxy"), ("tcp6",80,"All","docker-proxy"))

这里想要匹配我尝试过的listA.map(_._2) distinct

代码语言:javascript
复制
val output = listA.groupBy(_._2).map {
  case (key, value) =>
  if (value.map(_._2).contains(key)) {
    value
  }
}

但上面没有给我预期的结果(它显示的结果与listA相同)。

如何获得预期的产量,谁都知道?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-06 11:16:05

如果我正确理解你想要达到的目标,这就是你所需要的。

代码语言:javascript
复制
listA.groupBy(_._2).map{ case (_, value) => value.head }

它从每个端口组中选择第一个元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30074009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档