Котлин: определенное значение в списке только один раз - PullRequest
0 голосов
/ 06 июня 2019

Допустим, у меня есть список со значениями, и я хочу проверить, есть ли определенное значение в этом списке только один раз.

Какое самое быстрое решение для этого?

Позволяет проверить, содержит ли список только один раз 1
[0, 0, 0, 1] true
[1, 0, 0, 1] ложь

Ответы [ 2 ]

3 голосов
/ 06 июня 2019

Вы можете использовать count:

val element = 1 // the element we care about
val onesInData = data.count { it == element}

Вы также можете создать универсальную функцию, которая работает с любым типом, а не только с Int:

fun <T> Collection<T>.checkExactlyOnce(element: T): Boolean {
    return count { it == element} == 1
}
1 голос
/ 06 июня 2019
fun <T> List<T>.containsOnce(value: T): Boolean {
    val idx = data.indexOf(value)
    return idx != -1 && data.lastIndexOf(value) == idx
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...