Scala中Ordering和Ordered的区别

一般学习Scala语言的人,都是有Java语言基础的。

我们知道在Java语言中对象的比较有两个接口,分别是Comparable和Comparator。那么它们之间的区别是什么呢?

  • 实现Comparable接口的类,重写compareTo()方法后,其对象自身就具有了可比较性;
  • 实现comparator接口的类,重写了compare()方法后,则提供一个第三方比较器,用于比较两个对象。

由于Scala是基于Java语言实现的,所以在Scala语言中也引入了以上两种比较方法(Scala.math包下):

  • Ordered特质定义了相同类型间的比较方式,但这种内部比较方式是单一的;
trait Ordered[A] extends Any with java.lang.Comparable[A]{......}
  • Ordering则是提供第三方比较器,可以自定义多种比较方式,在实际开发中也是使用比较多的,灵活解耦合。
trait Ordering[T] extends Comparator[T] with PartialOrdering[T] with Serializable {......}

以上就是两种比较方式的简单总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值