Let's say I have an array of primitives or a list of objects, doesn't matter, is there a short way of doing this kind of check:
if (a_primitive == any_item_in_my_collection) {
// do something
}
or
if (an_object_ref.equals(any_item_in_my_collection)) {
// do something
}
without doing this
for (int i = 0; i < myArray.length; i++) {
if (a_primitive == myArray[i]) {
// do something
}
}
Thank you!
If you want your lookup to be O(1) - you need to mantain the data in an associative array or hashtable. Otherwise, you're going to have to traverse each element. The contains
method is just going to turn around and traverse your List for you.
Do you have to use arrays? Why not switch to Collection
-based API?
Then you can use Collection.contains(Object o)
.
Returns
true
if this collection contains the specified element. More formally, returnstrue
if and only if this collection contains at least one elemente
such that(o==null ? e==null : o.equals(e))
.
Depending on the implementation, this query can be answered in O(1)
or O(log N)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With