如何在arrayList过滤器中获取索引列表

时间:2018-06-07 00:39:14

标签: filter kotlin

我想获得索引列表如下。

val a = booleanArrayOf(true,false,true,false)

上面的代码,真正的数字是两个。 - > indexList = {0,2} 如何在Kotlin中获取indexList。

1 个答案:

答案 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 }