Package kotlin.comparisons

Helper functions for creating java.util.Comparator instances.

Helper functions for creating Comparator instances.

Functions

compareBy
Link copied to clipboard
Common
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.

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.

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.

compareByDescending
Link copied to clipboard
Common
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.

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.

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

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

compareValuesBy
Link copied to clipboard
Common
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.

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.

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.

maxOf
Link copied to clipboard
fun <T : Comparable<T>> maxOf(a: T, b: T): T
inline fun maxOf(a: Byte, b: Byte): Byte
inline fun maxOf(a: Double, b: Double): Double
inline fun maxOf(a: Float, b: Float): Float
inline fun maxOf(a: Int, b: Int): Int
inline fun maxOf(a: Long, b: Long): Long
inline fun maxOf(a: Short, b: Short): Short
fun <T : Comparable<T>> maxOf(a: T, b: T): T
inline fun maxOf(a: Byte, b: Byte): Byte
inline fun maxOf(a: Double, b: Double): Double
inline fun maxOf(a: Float, b: Float): Float
inline fun maxOf(a: Int, b: Int): Int
inline fun maxOf(a: Long, b: Long): Long
inline fun maxOf(a: Short, b: Short): Short
fun <T : Comparable<T>> maxOf(a: T, b: T): T
inline fun maxOf(a: Byte, b: Byte): Byte
inline fun maxOf(a: Double, b: Double): Double
inline fun maxOf(a: Float, b: Float): Float
inline fun maxOf(a: Int, b: Int): Int
inline fun maxOf(a: Long, b: Long): Long
inline fun maxOf(a: Short, b: Short): Short
fun <T : Comparable<T>> maxOf(a: T, b: T): T
inline fun maxOf(a: Byte, b: Byte): Byte
inline fun maxOf(a: Double, b: Double): Double
inline fun maxOf(a: Float, b: Float): Float
inline fun maxOf(a: Int, b: Int): Int
inline fun maxOf(a: Long, b: Long): Long
inline fun maxOf(a: Short, b: Short): Short

Returns the greater of two values.

Since Kotlin

1.1
fun <T : Comparable<T>> maxOf(a: T, vararg other: T): T
fun maxOf(a: Byte, vararg other: Byte): Byte
fun maxOf(a: Double, vararg other: Double): Double
fun maxOf(a: Float, vararg other: Float): Float
fun maxOf(a: Int, vararg other: Int): Int
fun maxOf(a: Long, vararg other: Long): Long
fun maxOf(a: Short, vararg other: Short): Short
fun maxOf(a: UByte, vararg other: UByte): UByte
fun maxOf(a: UInt, vararg other: UInt): UInt
fun maxOf(a: ULong, vararg other: ULong): ULong
fun maxOf(a: UShort, vararg other: UShort): UShort
fun <T : Comparable<T>> maxOf(a: T, vararg other: T): T
fun maxOf(a: Byte, vararg other: Byte): Byte
fun maxOf(a: Double, vararg other: Double): Double
fun maxOf(a: Float, vararg other: Float): Float
fun maxOf(a: Int, vararg other: Int): Int
fun maxOf(a: Long, vararg other: Long): Long
fun maxOf(a: Short, vararg other: Short): Short
fun <T : Comparable<T>> maxOf(a: T, vararg other: T): T
fun maxOf(a: Byte, vararg other: Byte): Byte
fun maxOf(a: Double, vararg other: Double): Double
fun maxOf(a: Float, vararg other: Float): Float
fun maxOf(a: Int, vararg other: Int): Int
fun maxOf(a: Long, vararg other: Long): Long
fun maxOf(a: Short, vararg other: Short): Short
fun <T : Comparable<T>> maxOf(a: T, vararg other: T): T
fun maxOf(a: Byte, vararg other: Byte): Byte
fun maxOf(a: Double, vararg other: Double): Double
fun maxOf(a: Float, vararg other: Float): Float
fun maxOf(a: Int, vararg other: Int): Int
fun maxOf(a: Long, vararg other: Long): Long
fun maxOf(a: Short, vararg other: Short): Short

Returns the greater of the given values.

Since Kotlin

1.4
Common
fun maxOf(a: UByte, b: UByte): UByte
fun maxOf(a: UInt, b: UInt): UInt
fun maxOf(a: ULong, b: ULong): ULong
fun maxOf(a: UShort, b: UShort): UShort

Returns the greater of two values.

Since Kotlin

1.5
Common
fun <T> maxOf(a: T, b: T, comparator: Comparator<in T>): T

Returns the greater of two values according to the order specified by the given comparator.

Since Kotlin

1.1
Common
fun <T> maxOf(a: T, vararg other: T, comparator: Comparator<in T>): T

Returns the greater of the given values according to the order specified by the given comparator.

Since Kotlin

1.4
fun <T : Comparable<T>> maxOf(a: T, b: T, c: T): T
inline fun maxOf(a: Byte, b: Byte, c: Byte): Byte
inline fun maxOf(a: Double, b: Double, c: Double): Double
inline fun maxOf(a: Float, b: Float, c: Float): Float
inline fun maxOf(a: Int, b: Int, c: Int): Int
inline fun maxOf(a: Long, b: Long, c: Long): Long
inline fun maxOf(a: Short, b: Short, c: Short): Short
fun <T : Comparable<T>> maxOf(a: T, b: T, c: T): T
inline fun maxOf(a: Byte, b: Byte, c: Byte): Byte
inline fun maxOf(a: Double, b: Double, c: Double): Double
inline fun maxOf(a: Float, b: Float, c: Float): Float
inline fun maxOf(a: Int, b: Int, c: Int): Int
inline fun maxOf(a: Long, b: Long, c: Long): Long
inline fun maxOf(a: Short, b: Short, c: Short): Short
fun <T : Comparable<T>> maxOf(a: T, b: T, c: T): T
inline fun maxOf(a: Byte, b: Byte, c: Byte): Byte
inline fun maxOf(a: Double, b: Double, c: Double): Double
inline fun maxOf(a: Float, b: Float, c: Float): Float
inline fun maxOf(a: Int, b: Int, c: Int): Int
inline fun maxOf(a: Long, b: Long, c: Long): Long
inline fun maxOf(a: Short, b: Short, c: Short): Short
fun <T : Comparable<T>> maxOf(a: T, b: T, c: T): T
inline fun maxOf(a: Byte, b: Byte, c: Byte): Byte
inline fun maxOf(a: Double, b: Double, c: Double): Double
inline fun maxOf(a: Float, b: Float, c: Float): Float
inline fun maxOf(a: Int, b: Int, c: Int): Int
inline fun maxOf(a: Long, b: Long, c: Long): Long
inline fun maxOf(a: Short, b: Short, c: Short): Short

Returns the greater of three values.

Since Kotlin

1.1
Common
inline fun maxOf(a: UByte, b: UByte, c: UByte): UByte
inline fun maxOf(a: UInt, b: UInt, c: UInt): UInt
inline fun maxOf(a: ULong, b: ULong, c: ULong): ULong
inline fun maxOf(a: UShort, b: UShort, c: UShort): UShort

Returns the greater of three values.

Since Kotlin

1.5
Common
fun <T> maxOf(a: T, b: T, c: T, comparator: Comparator<in T>): T

Returns the greater of three values according to the order specified by the given comparator.

Since Kotlin

1.1
minOf
Link copied to clipboard
fun <T : Comparable<T>> minOf(a: T, b: T): T
inline fun minOf(a: Byte, b: Byte): Byte
inline fun minOf(a: Double, b: Double): Double
inline fun minOf(a: Float, b: Float): Float
inline fun minOf(a: Int, b: Int): Int
inline fun minOf(a: Long, b: Long): Long
inline fun minOf(a: Short, b: Short): Short
fun <T : Comparable<T>> minOf(a: T, b: T): T
inline fun minOf(a: Byte, b: Byte): Byte
inline fun minOf(a: Double, b: Double): Double
inline fun minOf(a: Float, b: Float): Float
inline fun minOf(a: Int, b: Int): Int
inline fun minOf(a: Long, b: Long): Long
inline fun minOf(a: Short, b: Short): Short
fun <T : Comparable<T>> minOf(a: T, b: T): T
inline fun minOf(a: Byte, b: Byte): Byte
inline fun minOf(a: Double, b: Double): Double
inline fun minOf(a: Float, b: Float): Float
inline fun minOf(a: Int, b: Int): Int
inline fun minOf(a: Long, b: Long): Long
inline fun minOf(a: Short, b: Short): Short
fun <T : Comparable<T>> minOf(a: T, b: T): T
inline fun minOf(a: Byte, b: Byte): Byte
inline fun minOf(a: Double, b: Double): Double
inline fun minOf(a: Float, b: Float): Float
inline fun minOf(a: Int, b: Int): Int
inline fun minOf(a: Long, b: Long): Long
inline fun minOf(a: Short, b: Short): Short

Returns the smaller of two values.

Since Kotlin

1.1
fun <T : Comparable<T>> minOf(a: T, vararg other: T): T
fun minOf(a: Byte, vararg other: Byte): Byte
fun minOf(a: Double, vararg other: Double): Double
fun minOf(a: Float, vararg other: Float): Float
fun minOf(a: Int, vararg other: Int): Int
fun minOf(a: Long, vararg other: Long): Long
fun minOf(a: Short, vararg other: Short): Short
fun minOf(a: UByte, vararg other: UByte): UByte
fun minOf(a: UInt, vararg other: UInt): UInt
fun minOf(a: ULong, vararg other: ULong): ULong
fun minOf(a: UShort, vararg other: UShort): UShort
fun <T : Comparable<T>> minOf(a: T, vararg other: T): T
fun minOf(a: Byte, vararg other: Byte): Byte
fun minOf(a: Double, vararg other: Double): Double
fun minOf(a: Float, vararg other: Float): Float
fun minOf(a: Int, vararg other: Int): Int
fun minOf(a: Long, vararg other: Long): Long
fun minOf(a: Short, vararg other: Short): Short
fun <T : Comparable<T>> minOf(a: T, vararg other: T): T
fun minOf(a: Byte, vararg other: Byte): Byte
fun minOf(a: Double, vararg other: Double): Double
fun minOf(a: Float, vararg other: Float): Float
fun minOf(a: Int, vararg other: Int): Int
fun minOf(a: Long, vararg other: Long): Long
fun minOf(a: Short, vararg other: Short): Short
fun <T : Comparable<T>> minOf(a: T, vararg other: T): T
fun minOf(a: Byte, vararg other: Byte): Byte
fun minOf(a: Double, vararg other: Double): Double
fun minOf(a: Float, vararg other: Float): Float
fun minOf(a: Int, vararg other: Int): Int
fun minOf(a: Long, vararg other: Long): Long
fun minOf(a: Short, vararg other: Short): Short

Returns the smaller of the given values.

Since Kotlin

1.4
Common
fun minOf(a: UByte, b: UByte): UByte
fun minOf(a: UInt, b: UInt): UInt
fun minOf(a: ULong, b: ULong): ULong
fun minOf(a: UShort, b: UShort): UShort

Returns the smaller of two values.

Since Kotlin

1.5
Common
fun <T> minOf(a: T, b: T, comparator: Comparator<in T>): T

Returns the smaller of two values according to the order specified by the given comparator.

Since Kotlin

1.1
Common
fun <T> minOf(a: T, vararg other: T, comparator: Comparator<in T>): T

Returns the smaller of the given values according to the order specified by the given comparator.

Since Kotlin

1.4
fun <T : Comparable<T>> minOf(a: T, b: T, c: T): T
inline fun minOf(a: Byte, b: Byte, c: Byte): Byte
inline fun minOf(a: Double, b: Double, c: Double): Double
inline fun minOf(a: Float, b: Float, c: Float): Float
inline fun minOf(a: Int, b: Int, c: Int): Int
inline fun minOf(a: Long, b: Long, c: Long): Long
inline fun minOf(a: Short, b: Short, c: Short): Short
fun <T : Comparable<T>> minOf(a: T, b: T, c: T): T
inline fun minOf(a: Byte, b: Byte, c: Byte): Byte
inline fun minOf(a: Double, b: Double, c: Double): Double
inline fun minOf(a: Float, b: Float, c: Float): Float
inline fun minOf(a: Int, b: Int, c: Int): Int
inline fun minOf(a: Long, b: Long, c: Long): Long
inline fun minOf(a: Short, b: Short, c: Short): Short
fun <T : Comparable<T>> minOf(a: T, b: T, c: T): T
inline fun minOf(a: Byte, b: Byte, c: Byte): Byte
inline fun minOf(a: Double, b: Double, c: Double): Double
inline fun minOf(a: Float, b: Float, c: Float): Float
inline fun minOf(a: Int, b: Int, c: Int): Int
inline fun minOf(a: Long, b: Long, c: Long): Long
inline fun minOf(a: Short, b: Short, c: Short): Short
fun <T : Comparable<T>> minOf(a: T, b: T, c: T): T
inline fun minOf(a: Byte, b: Byte, c: Byte): Byte
inline fun minOf(a: Double, b: Double, c: Double): Double
inline fun minOf(a: Float, b: Float, c: Float): Float
inline fun minOf(a: Int, b: Int, c: Int): Int
inline fun minOf(a: Long, b: Long, c: Long): Long
inline fun minOf(a: Short, b: Short, c: Short): Short

Returns the smaller of three values.

Since Kotlin

1.1
Common
inline fun minOf(a: UByte, b: UByte, c: UByte): UByte
inline fun minOf(a: UInt, b: UInt, c: UInt): UInt
inline fun minOf(a: ULong, b: ULong, c: ULong): ULong
inline fun minOf(a: UShort, b: UShort, c: UShort): UShort

Returns the smaller of three values.

Since Kotlin

1.5
Common
fun <T> minOf(a: T, b: T, c: T, comparator: Comparator<in T>): T

Returns the smaller of three values according to the order specified by the given comparator.

Since Kotlin

1.1
naturalOrder
Link copied to clipboard
Common
fun <T : Comparable<T>> naturalOrder(): Comparator<T>

Returns a comparator that compares Comparable objects in natural order.

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

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

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.

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

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

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.

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

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

reverseOrder
Link copied to clipboard
Common
fun <T : Comparable<T>> reverseOrder(): Comparator<T>

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

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.