IndexOf в массивах Kotlin

Как получить индекс значения из массива Kotlin?

Мое лучшее решение прямо сейчас использует:

val max = nums.max()
val maxIdx = nums.indices.find({ (i) -> nums[i] == max }) ?: -1

есть ли лучший способ?

Ответ 1

Если вы хотите получить индекс максимального элемента, вы можете использовать функцию "maxBy":

val maxIdx = nums.indices.maxBy { nums[it] } ?: -1

Это более эффективно, поскольку он будет перемещаться по массиву только один раз.