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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。