用法 一
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。