Spec-Zone.ru › Kotlin 2

allDistinctBy

kotlin-stdlib/kotlin.collections/allDistinctBy

Начиная с Kotlin: 2.4

@ExperimentalStdlibApi
inline fun <T, K> Array<out T>.allDistinctBy(selector: (T) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(arrayOf<String>().allDistinctBy { it.length }) // true
println(arrayOf("apple").allDistinctBy { it.length }) // true

val values = arrayOf("apple", "mango", "peach")
println(values.allDistinctBy { it.length }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> ByteArray.allDistinctBy(selector: (Byte) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(byteArrayOf().allDistinctBy { it * it }) // true
println(byteArrayOf(1).allDistinctBy { it * it }) // true

val values = byteArrayOf(1, -1, 2)
println(values.allDistinctBy { it * it }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> ShortArray.allDistinctBy(selector: (Short) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(shortArrayOf().allDistinctBy { it * it }) // true
println(shortArrayOf(1).allDistinctBy { it * it }) // true

val values = shortArrayOf(1, -1, 2)
println(values.allDistinctBy { it * it }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> IntArray.allDistinctBy(selector: (Int) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(intArrayOf().allDistinctBy { it * it }) // true
println(intArrayOf(1).allDistinctBy { it * it }) // true

val values = intArrayOf(1, -1, 2)
println(values.allDistinctBy { it * it }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> LongArray.allDistinctBy(selector: (Long) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(longArrayOf().allDistinctBy { it * it }) // true
println(longArrayOf(1L).allDistinctBy { it * it }) // true

val values = longArrayOf(1L, -1L, 2L)
println(values.allDistinctBy { it * it }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> FloatArray.allDistinctBy(selector: (Float) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(floatArrayOf().allDistinctBy { it * it }) // true
println(floatArrayOf(1.0f).allDistinctBy { it * it }) // true

val values = floatArrayOf(1.0f, -1.0f, 2.0f)
println(values.allDistinctBy { it * it }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> DoubleArray.allDistinctBy(selector: (Double) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(doubleArrayOf().allDistinctBy { it * it }) // true
println(doubleArrayOf(1.0).allDistinctBy { it * it }) // true

val values = doubleArrayOf(1.0, -1.0, 2.0)
println(values.allDistinctBy { it * it }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> BooleanArray.allDistinctBy(selector: (Boolean) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(booleanArrayOf().allDistinctBy { if (it) 1 else 0 }) // true
println(booleanArrayOf(true).allDistinctBy { if (it) 1 else 0 }) // true

val values = booleanArrayOf(true, false)
println(values.allDistinctBy { if (it) 1 else 0 }) // true
println(values.allDistinctBy { 0 }) // false 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <K> CharArray.allDistinctBy(selector: (Char) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(charArrayOf().allDistinctBy { it.uppercaseChar() }) // true
println(charArrayOf('a').allDistinctBy { it.uppercaseChar() }) // true

val values = charArrayOf('a', 'A', 'b')
println(values.allDistinctBy { it.uppercaseChar() }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
inline fun <T, K> Iterable<T>.allDistinctBy(selector: (T) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам коллекции, отличаются друг от друга.

Для пустой коллекции возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(listOf<String>().allDistinctBy { it.length }) // true
println(listOf("apple").allDistinctBy { it.length }) // true

val values = listOf("apple", "mango", "peach")
println(values.allDistinctBy { it.length }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
@ExperimentalUnsignedTypes
inline fun <K> UIntArray.allDistinctBy(selector: (UInt) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(uintArrayOf().allDistinctBy { it % 2u }) // true
println(uintArrayOf(1u).allDistinctBy { it % 2u }) // true

val values = uintArrayOf(1u, 3u, 2u)
println(values.allDistinctBy { it % 2u }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
@ExperimentalUnsignedTypes
inline fun <K> ULongArray.allDistinctBy(selector: (ULong) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(ulongArrayOf().allDistinctBy { it % 2uL }) // true
println(ulongArrayOf(1uL).allDistinctBy { it % 2uL }) // true

val values = ulongArrayOf(1uL, 3uL, 2uL)
println(values.allDistinctBy { it % 2uL }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
@ExperimentalUnsignedTypes
inline fun <K> UByteArray.allDistinctBy(selector: (UByte) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(ubyteArrayOf().allDistinctBy { it.toUInt() % 2u }) // true
println(ubyteArrayOf(1u).allDistinctBy { it.toUInt() % 2u }) // true

val values = ubyteArrayOf(1u, 3u, 2u)
println(values.allDistinctBy { it.toUInt() % 2u }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

@ExperimentalStdlibApi
@ExperimentalUnsignedTypes
inline fun <K> UShortArray.allDistinctBy(selector: (UShort) -> K): Boolean

Возвращает true, если все значения, полученные применением заданной функции селектора к элементам массива, отличаются друг от друга.

Для пустого массива возвращает true.

Значения селектора сравниваются с помощью структурного равенства (==). Операция возвращает false сразу после обнаружения повторяющегося значения селектора.

Для значений селектора с плавающей точкой (Double, Float) NaN считается равным NaN, а -0.0 считается не равным 0.0, что соответствует поведению Double.equals и Float.equals.

Примеры


fun main() { 
   //sampleStart 
   println(ushortArrayOf().allDistinctBy { it.toUInt() % 2u }) // true
println(ushortArrayOf(1u).allDistinctBy { it.toUInt() % 2u }) // true

val values = ushortArrayOf(1u, 3u, 2u)
println(values.allDistinctBy { it.toUInt() % 2u }) // false
println(values.allDistinctBy { it }) // true 
   //sampleEnd
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/all-distinct-by.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API