有没有一种简单的方法在不编写for循环并收集索引的情况下获取数组中匹配元素的索引?
Eg: val arr = arrayOf<Int>(2,3,4,2,5,2,6,3,2)
Output: For element 2, output should be (0,3,5,8) and For element 3, output should be (1,7)
Kotlin提供了indexOf(element)方法,它返回第一个索引,然后lastIndexOf(element)方法会给出最后一个索引。我正在寻找一种简单的方法来获取所有匹配元素的索引。
我的解决方案:迭代数组并收集索引的标准解决方案。
var indexArrOf2 = mutableListOf<Int>()
var indexArrOf3 = mutableListOf<Int>()
for(i in arr.indices) {
if (arr[i] == 2) {
indexArrOf2.add(i)
}
if (arr[i] == 3) {
indexArrOf3.add(i)
}
}
arr.mapIndexed { index, value -> if (value == 2) index else null }.filterNotNull()
- Michael