我想获得索引列表如下。
val a = booleanArrayOf(true,false,true,false)
上面的代码,真正的数字是两个。 - > indexList = {0,2} 如何在Kotlin中获取indexList。
答案 0 :(得分:10)
您可以使用mapIndexed()
获取索引和每个元素的值,转换为索引或null,然后删除空值...
val b: List<Int> = a.mapIndexed { i, b -> if (b) i else null }.filterNotNull().toList()
另一种方法是使用withIndex()
函数,过滤真值,并将结果对映射到索引值。这可能会更清楚一点。
val c: List<Int> = a.withIndex().filter { it.value }.map { it.index }