web-dev-qa-db-fra.com

Kotlin - Moyen idiomatique de vérifier que le tableau contient une valeur

Qu'est-ce qu'un moyen idiomatique de vérifier si un tableau de chaînes contient une valeur en kotlin? Comme Ruby's #include?.

Je pensais à propos de:

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

Y a-t-il un meilleur moyen?

26
jturolla

L'équivalent que vous recherchez est l'opérateur contient .

array.contains("value") 

Kotlin propose une alternative notation infixe pour cet opérateur:

"value" in array

C'est la même fonction appelée derrière la scène, mais puisque notation infixe n'est pas trouvé dans Java on pourrait dire que in est la manière la plus idiomatique .

30
Geoffrey Marizy

Vous pouvez également vérifier si le tableau contient un objet avec un champ spécifique à comparer avec l'utilisation de any()

listOfObjects.any{ object -> object.fieldxyz == value_to_compare_here }
43
Amar Jain

Vous pouvez utiliser l'opérateur in qui, dans ce cas, appelle contains :

"value" in array

18
mfulton26

Utiliser l'opérateur in est une façon idiomatique de le faire.

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

Voici le code où vous pouvez trouver un champ spécifique dans ArrayList avec des objets. La réponse d'Amar Jain m'a aidé:

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