Package-level declarations

Helper functions for creating Comparator instances.

Functions

Link copied to clipboard
fun <T> compareBy(vararg selectors: (T) -> Comparable<*>?): Comparator<T>

Creates a comparator using the sequence of functions to calculate a result of comparison. The functions are called sequentially, receive the given values a and b and return Comparable objects. As soon as the Comparable instances returned by a function for a and b values do not compare as equal, the result of that comparison is returned from the Comparator.

Since Kotlin 1.0
inline fun <T> compareBy(crossinline selector: (T) -> Comparable<*>?): Comparator<T>

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

Since Kotlin 1.0
inline fun <T, K> compareBy(comparator: Comparator<in K>, crossinline selector: (T) -> K): Comparator<T>

Creates a comparator using the selector function to transform values being compared and then applying the specified comparator to compare transformed values.

Since Kotlin 1.0
Link copied to clipboard
inline fun <T> compareByDescending(crossinline selector: (T) -> Comparable<*>?): Comparator<T>

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

Since Kotlin 1.0
inline fun <T, K> compareByDescending(comparator: Comparator<in K>, crossinline selector: (T) -> K): Comparator<T>

Creates a descending comparator using the selector function to transform values being compared and then applying the specified comparator to compare transformed values.

Since Kotlin 1.0
Link copied to clipboard
fun <T : Comparable<*>> compareValues(a: T?, b: T?): Int

Compares two nullable Comparable values. Null is considered less than any value.

Since Kotlin 1.0
Link copied to clipboard
fun <T> compareValuesBy(a: T, b: T, vararg selectors: (T) -> Comparable<*>?): Int

Compares two values using the specified functions selectors to calculate the result of the comparison. The functions are called sequentially, receive the given values a and b and return Comparable objects. As soon as the Comparable instances returned by a function for a and b values do not compare as equal, the result of that comparison is returned.

Since Kotlin 1.0
inline fun <T> compareValuesBy(a: T, b: T, selector: (T) -> Comparable<*>?): Int

Compares two values using the specified selector function to calculate the result of the comparison. The function is applied to the given values a and b and return Comparable objects. The result of comparison of these Comparable instances is returned.

Since Kotlin 1.0
inline fun <T, K> compareValuesBy(a: T, b: T, comparator: Comparator<in K>, selector: (T) -> K): Int

Compares two values using the specified selector function to calculate the result of the comparison. The function is applied to the given values a and b and return objects of type K which are then being compared with the given comparator.

Since Kotlin 1.0
Link copied to clipboard

Returns a comparator that compares Comparable objects in natural order.

Since Kotlin 1.0
Link copied to clipboard
inline fun <T : Comparable<T>> nullsFirst(): Comparator<T?>

Provides a comparator of nullable Comparable values considering null value less than any other value.

Since Kotlin 1.0
fun <T : Any> nullsFirst(comparator: Comparator<in T>): Comparator<T?>

Extends the given comparator of non-nullable values to a comparator of nullable values considering null value less than any other value.

Since Kotlin 1.0
Link copied to clipboard
inline fun <T : Comparable<T>> nullsLast(): Comparator<T?>

Provides a comparator of nullable Comparable values considering null value greater than any other value.

Since Kotlin 1.0
fun <T : Any> nullsLast(comparator: Comparator<in T>): Comparator<T?>

Extends the given comparator of non-nullable values to a comparator of nullable values considering null value greater than any other value.

Since Kotlin 1.0
Link copied to clipboard

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

Since Kotlin 1.0
Link copied to clipboard

Returns a comparator that compares Comparable objects in reversed natural order.

Since Kotlin 1.0
Link copied to clipboard
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.

Since Kotlin 1.0
Link copied to clipboard
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.

Since Kotlin 1.0
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.

Since Kotlin 1.0
Link copied to clipboard
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.

Since Kotlin 1.0
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.

Since Kotlin 1.0
Link copied to clipboard
inline fun <T> Comparator<T>.thenComparator(crossinline comparison: (a: T, b: T) -> Int): Comparator<T>

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

Since Kotlin 1.0
Link copied to clipboard
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.

Since Kotlin 1.0