binarySearchBy
所在位置是kotlin.collections.binarySearchBy
,其相關用法介紹如下。
用法:
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
值被認為小於任何非空值。
例子:
import kotlin.test.*
fun main(args: Array<String>) {
//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
}
輸出:
3
返回具有指定key的元素的索引,如果它包含在指定範圍內的列表中;否則,反轉插入點 (-insertion point - 1)
。插入點被定義為應該插入元素的索引,因此列表(或列表的指定子範圍)仍然保持排序狀態。
相關用法
- Kotlin binarySearch用法及代碼示例
- Kotlin associateBy用法及代碼示例
- Kotlin all用法及代碼示例
- Kotlin map用法及代碼示例
- Kotlin filterNot用法及代碼示例
- Kotlin reduceRight用法及代碼示例
- Kotlin Random.Default用法及代碼示例
- Kotlin Byte.inc用法及代碼示例
- Kotlin getValue用法及代碼示例
- Kotlin Double.dec用法及代碼示例
- Kotlin windowedSequence用法及代碼示例
- Kotlin contentToString用法及代碼示例
- Kotlin groupByTo用法及代碼示例
- Kotlin commonPrefixWith用法及代碼示例
- Kotlin MatchResult.Destructured用法及代碼示例
- Kotlin Delegates.notNull用法及代碼示例
- Kotlin ifBlank用法及代碼示例
- Kotlin filterNotTo用法及代碼示例
- Kotlin getOrPut用法及代碼示例
- Kotlin Triple.<init>用法及代碼示例
- Kotlin Duration.toString用法及代碼示例
- Kotlin windowed用法及代碼示例
- Kotlin indexOf用法及代碼示例
- Kotlin reduceIndexed用法及代碼示例
- Kotlin filterKeys用法及代碼示例
注:本文由純淨天空篩選整理自kotlinlang.org大神的英文原創作品 kotlin.collections.binarySearchBy。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。