Сравнение массивов в Kotlin - PullRequest
1 голос
/ 28 мая 2020

Я изучаю kotlin в данный момент. Есть ли способ «сравнить» два массива? Например, у меня есть массив (1,2,3) и массив (1,2,1). Результат должен быть примерно таким: «2,2» для «взял два из индекса два». Заранее спасибо.

1 Ответ

2 голосов
/ 28 мая 2020

Вы можете использовать zip следующим образом:

val array1 = listOf(1, 2, 3)
val array2 = listOf(1, 2, 1)

val out1 = array1.zip(array2, Int::minus)

println(out1) // [0, 0, 2]

Это дает вам новый массив со значениями разностей.

Отсюда всего несколько шагов до (необычного) формата, который вы запрашиваете, используя mapIndexedNotNull:

val out2 = out1.mapIndexedNotNull{ i, v -> if (v != 0) listOf(i, v) else null }

println(out2) // [[2, 2]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...