索引在Kotlin数组中

我如何从一个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())