Ответ 1
Если вы хотите получить индекс максимального элемента, вы можете использовать функцию "maxBy":
val maxIdx = nums.indices.maxBy { nums[it] } ?: -1
Это более эффективно, поскольку он будет перемещаться по массиву только один раз.
Как получить индекс значения из массива Kotlin?
Мое лучшее решение прямо сейчас использует:
val max = nums.max()
val maxIdx = nums.indices.find({ (i) -> nums[i] == max }) ?: -1
есть ли лучший способ?
Если вы хотите получить индекс максимального элемента, вы можете использовать функцию "maxBy":
val maxIdx = nums.indices.maxBy { nums[it] } ?: -1
Это более эффективно, поскольку он будет перемещаться по массиву только один раз.
С текущим Kotlin (1.0) вы можете использовать indexOf()
функцию расширения на массивах:
val x = arrayOf("happy","dancer","jumper").indexOf("dancer")
Все функции расширения для массивов находятся в ссылка api.
В вашем примере:
val maxIdx = nums.indexOf(nums.max())