在Kotlin数组中的indexOf

时间:2013-12-24 13:57:39

标签: arrays kotlin

如何从Kotlin数组中获取值的索引?

我现在最好的解决方案是使用:

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

有更好的方法吗?

2 个答案:

答案 0 :(得分:15)

如果你想得到你可以使用的最大元素的索引' maxBy'功能:

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

它更有效率,因为它只会遍历数组一次。

答案 1 :(得分:7)

使用当前的Kotlin(1.0),您可以在数组上使用indexOf() extension function

val x = arrayOf("happy","dancer","jumper").indexOf("dancer")

extension functions for arrays中找到了所有api reference

在你的例子中:

val maxIdx = nums.indexOf(nums.max())
相关问题