Трейт scala.math.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] был согласован с методом compare. Однако из-за ограничений, присущих семантике стирания типов, нет разумного способа предоставить реализацию по умолчанию для равенства экземпляров 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.1.1/scala/math/Ordered.html