有没有一种简单的方法可以在不编写 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)
Run Code Online (Sandbox Code Playgroud)
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)
}
}
Run Code Online (Sandbox Code Playgroud)
是的,您可以使用mapIndexedNotNull:
arr.mapIndexedNotNull { index, elem -> if (elem == 2) index else null }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
584 次 |
| 最近记录: |