Подтвердить что ты не робот

Kotlin - Идиоматический способ проверки массива содержит значение

Какой идиоматический способ проверить, содержит ли массив строк значение в kotlin? Также как ruby ​​ #include?.

Я хоть о:

array.filter { it == "value" }.any()

Есть ли лучший способ?

4b9b3361

Ответ 1

Эквивалентом, который вы ищете, является оператор содержит.

array.contains("value") 

Kotlin предлагает альтернативную инфиксную нотацию для этого оператора:

"value" in array

Это та же функция, которая вызывается за кулисами, но, поскольку инфиксная нотация не найдена в Java, мы можем сказать, что in - самый идиоматический способ.

Ответ 2

Вы также можете проверить, содержит ли массив объект с некоторым конкретным полем для сравнения с помощью any()

listOfObjects.any{ object -> object.fieldxyz == value_to_compare_here }

Ответ 3

Вы можете использовать оператор in, который в этом случае вызывает contains:

"value" in array

Ответ 4

Использование оператора в - это идиоматический способ сделать это.

val contains = "a" in arrayOf("a", "b", "c")

Ответ 5

Вот код, где вы можете найти определенное поле в ArrayList с объектами. Ответ амара Джайна помог мне:

listOfObjects.any{ it.field == "value"}