Spec-Zone.ru › Kotlin 2

binarySearchBy

kotlin-stdlib/kotlin.collections/binarySearchBy

Начиная с Kotlin: 1.0

inline fun <T, K : Comparable<K>> List<T>.binarySearchBy(key: K?, fromIndex: Int = 0, toIndex: Int = size, crossinline selector: (T) -> K?): Int

Выполняет бинарный поиск в этом списке или его диапазоне элемента, у которого ключ, возвращаемый указанной функцией selector, равен заданному значению key. Предполагается, что список отсортирован по возрастанию согласно естественному порядку Comparable для ключей его элементов. В противном случае результат не определён.

Если список содержит несколько элементов с указанным key, не гарантируется, какой из них будет найден.

null значение считается меньшим любого значения, отличного от null.

Возвращает

индекс элемента с указанным key, если он содержится в списке в указанном диапазоне; в противном случае — инвертированную точку вставки (-insertion point - 1). Точка вставки определяется как индекс, по которому следует вставить элемент, чтобы список (или указанный поддиапазон списка) оставался отсортированным.

Примеры

import kotlin.math.*
import kotlin.test.*

fun main() { 
   //sampleStart 
   data class Box(val value: Int)

val numbers = listOf(1, 3, 7, 10, 12)
val boxes = numbers.map { Box(it) }
println(boxes.binarySearchBy(10) { it.value }) // 3 
   //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/binary-search-by.html

Spec-Zone.ru

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