Question or issue of Kotlin Programming:
What’s an idiomatic way to check if an array of strings contains a value in Kotlin? Just like ruby’s #include?.
I though about:
array.filter { it == "value" }.any()
Is there a better way?
How to solve this issue?
Solution no. 1:
The equivalent you are looking for is the contains operator.
array.contains("value")
Kotlin offer an alternative infix notation for this operator:
"value" in array
It’s the same function called behind the scene, but since infix notation isn’t found in Java we could say that in
is the most idiomatic way.
Solution no. 2:
You could also check if the array contains an object with some specific field to compare with using any()
listOfObjects.any{ object -> object.fieldxyz == value_to_compare_here }
Solution no. 3:
Using in operator is an idiomatic way to do that.
val contains = "a" in arrayOf("a", "b", "c")
Solution no. 4:
You can use the in
operator which, in this case, calls contains
:
"value" in array
Solution no. 5:
Here is code where you can find specific field in ArrayList with objects. The answer of Amar Jain helped me:
listOfObjects.any{ it.field == "value"}
Solution no. 6:
You can use it..contains(” “)
data class Animal (val name:String) val animals = listOf(Animal("Lion"), Animal("Elephant"), Animal("Tiger")) println(animals.filter { it.name.contains("n") }.toString())
output will be
[Animal(name=Lion), Animal(name=Elephant)]
Solution no. 7:
You can use find
method, that returns the first element matching the given [predicate], or null
if no such element was found.
Try this code to find value
in array
of objects
val findedElement = array?.find { it.id == value.id } if (findedElement != null) { //your code here }