前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scala里面的排序函数的使用

Scala里面的排序函数的使用

作者头像
我是攻城师
发布2018-05-14 17:38:55
1.6K0
发布2018-05-14 17:38:55
举报
文章被收录于专栏:我是攻城师我是攻城师

排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith

分别介绍下他们的功能:

(1)sorted

对一个集合进行自然排序,通过传递隐式的Ordering

(2)sortBy

对一个属性或多个属性进行排序,通过它的类型。

(3)sortWith

基于函数的排序,通过一个comparator函数,实现自定义排序的逻辑。

例子一:基于单集合单字段的排序

结果:

例子二:基于元组多字段的排序

注意多字段的排序,使用sorted比较麻烦,这里给出使用sortBy和sortWith的例子

先看基于sortBy的实现:

结果:

再看基于sortWith的实现:

从上面可以看出,基于sortBy的第二种实现比较优雅,语义比较清晰,第三种灵活性更强,但代码稍加繁琐

例子三:基于类的排序

先看sortBy的实现方法 排序规则:先按年龄排序,如果一样,就按照名称降序排

结果:

再看sortWith的实现方法:

结果:

总结:

本篇介绍了scala里面的三种排序函数,都有其各自的应用场景:

sorted:适合单集合的升降序

sortBy:适合对单个或多个属性的排序,代码量比较少,推荐使用这种

sortWith:适合定制化场景比较高的排序规则,比较灵活,也能支持单个或多个属性的排序,但代码量稍多,内部实际是通过java里面的Comparator接口来完成排序的。

实际应用中,可以根据具体的场景来选择合适的排序策略。

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

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

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

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

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