как получить список индексов в фильтре arrayList - PullRequest
0 голосов
/ 07 июня 2018

Я хочу получить индексный список следующим образом.

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

выше кода, Истинное число равно двум.-> indexList = {0, 2} как получить indexList в Kotlin.

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете использовать mapIndexed(), чтобы получить индекс и значение каждого элемента, преобразовать его в индекс или в ноль, а затем удалить нули ...

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 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...