A trait for data that have a single, natural ordering. Seescala.math.Ordering before using this trait for more information about whether to usescala.math.Ordering instead.
Classes that implement this trait can be sorted withscala.util.Sorting and can be compared with standard comparison operators (e.g. > and <).
Ordered should be used for data with a single, natural ordering (like integers) while Ordering allows for multiple ordering implementations. An Ordering instance will be implicitly created if necessary.
scala.math.Ordering is an alternative to this trait that allows multiple orderings to be defined for the same type.
scala.math.PartiallyOrdered is an alternative to this trait for partially ordered data.
For example, create a simple class that implementsOrdered and then sort it withscala.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)xIt is important that theequals method for an instance ofOrdered[A] be consistent with the compare method. However, due to limitations inherent in the type erasure semantics, there is no reasonable way to provide a default implementation of equality for instances ofOrdered[A]. Therefore, if you need to be able to use equality on an instance ofOrdered[A] you must provide it yourself either when inheriting or instantiating.
It is important that thehashCode method for an instance ofOrdered[A] be consistent with thecompare method. However, it is not possible to provide a sensible default implementation. Therefore, if you need to be able compute the hash of an instance ofOrdered[A] you must provide it yourself either when inheriting or instantiating.
Result of comparingthis with operandthat.
Result of comparingthis with operandthat.
Implement this method to determine how instances of A will be sorted.
Returnsx where:
x < 0 whenthis < that
x == 0 whenthis == that
x > 0 whenthis > that
Returns true ifthis is less thanthat
Returns true ifthis is less than or equal tothat.
Returns true ifthis is greater thanthat.
Returns true ifthis is greater than or equal tothat.
Result of comparingthis with operandthat.