前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >在Scala里面如何使用元组

在Scala里面如何使用元组

作者头像
我是攻城师
发布2018-05-14 17:39:24
发布2018-05-14 17:39:24
8140
举报
文章被收录于专栏:我是攻城师我是攻城师

元组在Scala语言中是一种十分重要的数据结构,类似数据库里面的一行记录(row),它可以将不同类型的值组合成一个对象,在实际应用中十分广泛。

先来看一个简单的tuple定义:

上面的第二种例子中,可以直接通过name和age来访问单个tuple的元素

例子(1):

一个简单的模式匹配

例子(2):

根据类型匹配

注意上面的代码里面case后面的如果有List[String]类型的,最好用一个类封装起来在做匹配,否则会出错。具体的方式请参考: https://www.cakesolutions.net/teamblogs/ways-to-pattern-match-generic-types-in-scala

例子(3):

变量绑定模式

注意普通的类不能直接使用上面的模式匹配

例子(4):

for循环的使用元组进行的模式匹配

结果:

最后我们使用元组,来模拟一个类似下面的SQL的例子:

表(pet)结构:

统计SQL语句:

Scala完整代码如下:

其实,核心代码只有中间的这一部分:

最终结果:

简单解释一下核心部分的代码含义:

首先执行了一个groupBy函数,对元组里面的第一个元素也就是宠物名进行 分组,分组之后,每个宠物名一样的数据会聚合在一起,然后执行一个map函数,对里面的valueList进行各种运算,得出来我们 需要的结果后,最终再以Map的数据结构返回,因为Map本身是没法排序的,所以我们得先需要转成Seq类型,最后再执行sortWith方法对value里面的最大次数进行降序排,如果是升序排,只需要把大于号该成小于号即可。

总结:

本篇主要介绍了tuple几种常见的应用场景,通过使用tuple数据结构配合上scala强大的函数方法,我们可以轻松愉快的处理的各种数据集,感兴趣的小伙伴可以自己尝试一下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我是攻城师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档