Comparator

fun interface Comparator<T>

Provides a comparison function for imposing a total ordering between instances of the type T.

fun interface Comparator<T>
fun interface Comparator<T>
typealias Comparator = Comparator<T>

Functions

compare
Link copied to clipboard
Common
abstract fun compare(a: T, b: T): Int

Compares its two arguments for order. Returns zero if the arguments are equal, a negative number if the first argument is less than the second, or a positive number if the first argument is greater than the second.

abstract fun compare(a: T, b: T): Int
abstract fun compare(a: T, b: T): Int

Extensions

reversed
Link copied to clipboard
Common
fun <T> Comparator<T>.reversed(): Comparator<T>

Returns a comparator that imposes the reverse ordering of this comparator.

then
Link copied to clipboard
Common
infix fun <T> Comparator<T>.then(comparator: Comparator<in T>): Comparator<T>

Combines this comparator and the given comparator such that the latter is applied only when the former considered values equal.

thenBy
Link copied to clipboard
Common
inline fun <T> Comparator<T>.thenBy(crossinline selector: (T) -> Comparable<*>?): Comparator<T>

Creates a comparator comparing values after the primary comparator defined them equal. It uses the function to transform value to a Comparable instance for comparison.

inline fun <T, K> Comparator<T>.thenBy(comparator: Comparator<in K>, crossinline selector: (T) -> K): Comparator<T>

Creates a comparator comparing values after the primary comparator defined them equal. It uses the selector function to transform values and then compares them with the given comparator.

thenByDescending
Link copied to clipboard
Common
inline fun <T> Comparator<T>.thenByDescending(crossinline selector: (T) -> Comparable<*>?): Comparator<T>

Creates a descending comparator using the primary comparator and the function to transform value to a Comparable instance for comparison.

inline fun <T, K> Comparator<T>.thenByDescending(comparator: Comparator<in K>, crossinline selector: (T) -> K): Comparator<T>

Creates a descending comparator comparing values after the primary comparator defined them equal. It uses the selector function to transform values and then compares them with the given comparator.

thenComparator
Link copied to clipboard
Common
inline fun <T> Comparator<T>.thenComparator(crossinline comparison: (T, T) -> Int): Comparator<T>

Creates a comparator using the primary comparator and function to calculate a result of comparison.

thenDescending
Link copied to clipboard
Common
infix fun <T> Comparator<T>.thenDescending(comparator: Comparator<in T>): Comparator<T>

Combines this comparator and the given comparator such that the latter is applied only when the former considered values equal.