scala 排序接口Ordering
Ordering 特质入门简介
排序是一种trait,其每个实例代表一种对类型实例进行排序的策略。
trait Ordering[T] extends Comparator[T] with PartialOrdering[T] with Serializable {outer =>/** Returns an integer whose sign communicates how x compares to y.** The result sign has the following meaning:** - negative if x < y* - positive if x > y* - zero otherwise (if x == y)*/def compare(x: T, y: T): Int
看一下其实现类,比如String类型,其实最终是调用了java中String类compareTo方法
trait StringOrdering extends Ordering[String] {def compare(x: String, y: String) = x.compareTo(y)}implicit object String extends StringOrdering
看一下应用.以sortBy为例,这里的隐式参数就是调用了这个
def sortBy[B](f: A => B)(implicit ord: Ordering[B]): Repr
举例说明
scala> val x=List("a","d","c")
x: List[String] = List(a, d, c)
//第二个参数为隐式参数,可以传,也可以不传,这里传只是为了说明问题
scala> x.sortBy(x=>x)(Ordering[String])
res14: List[String] = List(a, c, d)
//隐式参数传错无效
scala> x.sortBy(x=>x)(Ordering[Int])
<console>:27: error: type mismatch;found : scala.math.Ordering[Int]required: scala.math.Ordering[String]x.sortBy(x=>x)(Ordering[Int])^
//隐式参数使用时无需传递
scala> x.sortBy(x=>x)
res16: List[String] = List(a, c, d)
scala 排序接口Ordering相关推荐
- scala排序——ordering vs ordered
在最近探索scala的过程中,发现一个比较重要的问题,那就是排序,排序在业务代码中还是很常见的,最常用的排序就是对集合调用sorted[B >: A](implicit ord: Orderin ...
- R语言对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法、data.table、dplyr等方案
R语言对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法.data.table.dplyr等方案 目录
- R语言基于多字段(多数据列、multiple columns)对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法、data.table、dplyr等方案
R语言基于多字段(多数据列.multiple columns)对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法.data.table.dplyr等方案 目录
- 淘特商品详情API接口(商品销量接口,商品销量排序接口,商品价格接口,商品属性接口)
淘特商品详情API接口(商品销量接口,商品销量排序接口,商品价格接口,商品属性接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在U ...
- 淘特商品详情API接口(商品列表接口,商品销量接口,商品价格接口,商品价格排序接口,商品销量排序接口,专享价接口,已售商品数据接口,APP商品详情接口)
淘特商品详情API接口(商品列表接口,商品销量接口,商品价格接口,商品价格排序接口,商品销量排序接口,专享价接口,已售商品数据接口,APP商品详情接口)代码对接如下: 1.公共参数 名称 类型 必须 ...
- 淘特关键词搜索商品列表接口(商品销量排序接口,商品销量接口,商品属性接口,价格排序接口)
淘特关键词搜索商品列表接口(商品销量排序接口,商品销量接口,商品属性接口,价格排序接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接 ...
- guava排序器Ordering
目录 1. 排序器的创建 2. 剖析与原生排序的区别 3. 链式调用 3.1 reverse() 3.2 nullsFirst()/nullsLast() 4 运用排序器 4.1 isOrdered ...
- Scala 排序函数 sorted sortBy sortWith
排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith 分别介绍下他们的功能: (1)sorted 对一个集合进行自然排序,通过传递 ...
- java排序接口ComparableT 的实现与使用
java集合排序 一.map集合的排序 比较value进行排序 List<String> lastEventCauselist = new ArrayList<String>( ...
最新文章
- Xamarin Essentials教程地理定位Geolocation
- 模拟计算机有声,小年糕有声影集软件电脑版
- Cocos2d-x 3.0正式版及android环境搭建
- 全国软考数据库系统工程师教程(第2版)目录
- git branch 为什么会进入编辑状态_Git很难,搞砸很容易,好在有神奇命令让时光倒流...
- 如何在Visual Studio项目中正确添加汇编代码 .
- python安装jupyterlab_超级详细 centos7 安装 jupyter lab
- 安装计算机主板应注意,组装计算机并仅更换主板时要注意的事项
- 推荐一款好用的java反编译软件——JavaDecompiler
- flash 绘图API:绘制秀曲线图形
- 科技爱好者周刊(第 194 期):悲观者正确,乐观者成功
- 百度ai 性别_是的,ai可能是种族主义者和性别歧视者,所以我们该怎么办
- ☆苹果MAC OS X ★ 安装双系统☆
- rancher k8s集群pod一直处于Pending状态
- STM32f1系列压力传感器MPX4250压力检测
- U-Boot中支持USB
- Mathematica
- 日常BUG总结:虚拟机centos7无法识别网卡
- uniapp 小程序横屏处理方案
- 手撕设计模式,如何理解依赖倒置原则和好莱坞原则
热门文章
- 腾讯云主机安全防护(云镜)/usr/local/qcloud/YunJing/YDEyes/YDService 卸载
- JAVA中pin什么意思_银行业加密算法,PIN相关算法(java-国密)
- 为什么mysql查询结果有前缀_字符串的公共前缀对Mysql B+树查询影响回溯分析
- composer全局 linux_Linux下全局安装composer方法
- 星型模型 3nf的区别_数据库和数据仓库的区别和联系
- django2连接mysql_Django2.2 连接mySQL数据库
- MySQL基础一些概念一些用法
- java线程下载文件_使用多线程在Java下载文件
- php截取多个分割符号_PHP按符号截取字符串的指定部分的实现方法
- springmvc 页面跳转样式访问路径总是多一层地址_Net Core实战之基于角色的访问控制的设计...