Java中的if(variable == [集合中的任何项目])

Sla*_*vko 4 java arrays collections

假设我有一个基元数组或一个对象列表,无关紧要,是否有一种简短的方法来进行这种检查:

if (a_primitive == any_item_in_my_collection) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

要么

if (an_object_ref.equals(any_item_in_my_collection)) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

没有这样做

for (int i = 0; i < myArray.length; i++) {
    if (a_primitive == myArray[i]) {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ami*_*ani 8

如果希望查找为O(1) - 则需要在关联数组或哈希表中保存数据.否则,您将不得不遍历每个元素.该contains方法只是为您转身并遍历您的列表.


pol*_*nts 7

你必须使用数组吗?为什么不切换到Collection基于API?

然后你可以使用Collection.contains(Object o).

true如果此collection包含指定的元素,则返回.更正式地说,true当且仅当此集合包含至少一个e这样的元素时才返回(o==null ? e==null : o.equals(e)).

根据实现,可以在O(1)或中回答此查询O(log N).