Spec-Zone.ru › Kotlin 2

allEqualBy

kotlin-stdlib/kotlin.collections/allEqualBy

Начиная с Kotlin: 2.4

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры

import kotlin.math.abs

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

val values = byteArrayOf(1, -1, 1)
println(values.allEqualBy { it * it }) // true
println(values.allEqualBy { abs(it.toInt()) }) // true
println(values.allEqualBy { it * it * it }) // false 
   //sampleEnd
}

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры

import kotlin.math.abs

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

val values = shortArrayOf(1, -1, 1)
println(values.allEqualBy { it * it }) // true
println(values.allEqualBy { abs(it.toInt()) }) // true
println(values.allEqualBy { it * it * it }) // false 
   //sampleEnd
}

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры

import kotlin.math.abs

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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры

import kotlin.math.abs

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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры

import kotlin.math.abs

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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры

import kotlin.math.abs

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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


fun main() { 
   //sampleStart 
   println(booleanArrayOf().allEqualBy { 0 }) // true
println(booleanArrayOf(true).allEqualBy { 0 }) // true

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


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

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

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

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

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

Значения селектора сравниваются последовательно с использованием структурного равенства (==). Все элементы считаются равными по значению селектора, если значение селектора первого элемента равно значению селектора каждого последующего элемента.

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

Примеры


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

val values = ushortArrayOf(1u, 3u, 5u)
println(values.allEqualBy { it.toUInt() % 2u }) // true
println(values.allEqualBy { it }) // false 
   //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-equal-by.html

Spec-Zone.ru

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