用法 一
trait Ordered[A] extends Comparable[A]
具有单一自然顺序的数据的特征。在使用此 trait 之前,请参阅 scala.math.Ordering 以获取有关是否改为使用 scala.math.Ordering 的更多信息。
实现此特征的类可以使用scala.util.Sorting 进行排序,并且可以与标准比较运算符(例如 > 和 <)进行比较。
Ordered 应该用于具有单一自然排序(如整数)的数据,而 Ordering 允许多个排序实现。如有必要,将隐式创建 Ordering 实例。
scala.math.Ordering 是此特征的替代方案,它允许为同一类型定义多个排序。
scala.math.PartiallyOrdered 是部分有序数据的此特征的替代方案。
例如,创建一个实现 Ordered
的简单类,然后使用 scala.util.Sorting 对其进行排序:
case class OrderedClass(n:Int) extends Ordered[OrderedClass] {
def compare(that: OrderedClass) = this.n - that.n
}
val x = Array(OrderedClass(1), OrderedClass(5), OrderedClass(3))
scala.util.Sorting.quickSort(x)
x
重要的是Ordered[A]
实例的equals
方法与比较方法一致。但是,由于类型擦除语义固有的限制,没有合理的方法为 Ordered[A]
的实例提供相等的默认实现。因此,如果您需要能够在Ordered[A]
的实例上使用相等,则必须在继承或实例化时自己提供。
重要的是Ordered[A]
实例的hashCode
方法与compare
方法一致。但是,不可能提供合理的默认实现。因此,如果您需要能够计算Ordered[A]
实例的哈希值,您必须在继承或实例化时自己提供它。
也可以看看:
伴生:
- object
源码:
- Ordered.scala
相关用法
- Scala math.Ordering用法及代码示例
- Scala matching.Regex用法及代码示例
- Scala map isDefinedAt()用法及代码示例
- Scala map contains()用法及代码示例
- Scala map()用法及代码示例
- Scala mutable SortedSet contains()用法及代码示例
- Scala mutable SortedSet equals()用法及代码示例
- Scala mutable SortedSet subsetOf()用法及代码示例
- Scala mutable SortedSet drop()用法及代码示例
- Scala mutable.PriorityQueue用法及代码示例
- Scala mutable SortedSet diff()用法及代码示例
- Scala mutable SortedSet apply()用法及代码示例
- Scala mutable SortedSet dropRight()用法及代码示例
- Scala mutable.MultiMap用法及代码示例
- Scala Tabulate.sliding用法及代码示例
- Scala ArrayBuffer.inits用法及代码示例
- Scala long.BitwiseOr用法及代码示例
- Scala StringBuilder.partitionMap用法及代码示例
- Scala List distinct()用法及代码示例
- Scala DefaultMap.sizeIs用法及代码示例
- Scala StrictOptimizedIterableOps.sliding用法及代码示例
- Scala Searching.SearchResult用法及代码示例
- Scala ::.collectFirst用法及代码示例
- Scala TreeSet diff()用法及代码示例
- Scala Char getClass()用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 math.Ordered。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。