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.
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 }
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"}
Using in operator is an idiomatic way to do that.
val contains = "a" in arrayOf("a", "b", "c")
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)]
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
}
array.indexIf(Object o)
-> will return you index of first founded element, array.lastIndexOf(Object o)
-> will return you index of last founded element. You can also use predicate too, etc array.indexOfLast { it.name == "test " }
or array.indexOfFirst { it.name == "test "}
Success story sharing