Трейт Ordered.Ordered
трейт Ordered[A] extends Comparable[A]
Трейт для данных, имеющих единый, естественный порядок. Обратитесь к 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
Важно, чтобы метод equals для экземпляра Ordered[A] был согласован с методом сравнения. Однако из-за ограничений, присущих семантике стирания типов, нет разумного способа предоставить реализацию по умолчанию для равенства экземпляров Ordered[A]. Поэтому, если вам нужно использовать равенство для экземпляра Ordered[A], вы должны предоставить его самостоятельно при наследовании или создании экземпляра.
Важно, чтобы метод hashCode для экземпляра Ordered[A] был согласован с методом compare. Однако предоставить разумную реализацию по умолчанию невозможно. Поэтому, если вам нужно вычислить хэш-код экземпляра Ordered[A], вы должны предоставить его самостоятельно при наследовании или создании экземпляра.
| См. также | |
|---|---|
| Супертипы | |
| Известные подтипы | 21 тип |
Абстрактные методы
Исходный код
Результат сравнения this с операндом that.
Реализуйте этот метод, чтобы определить, как будут сортироваться экземпляры A.
Возвращает x, где:
x < 0приthis < thatx == 0приthis == thatx > 0приthis > that
Конкретные методы
Исходный код
Возвращает true, если this меньше, чем that
Исходный код
Возвращает true, если this меньше или равно that.
Исходный код
Возвращает true, если this больше, чем that.
Исходный код
Возвращает true, если this больше или равно that.
Исходный код
Результат сравнения this с операндом that.
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/math/Ordered.html