Java中的if(变量==[集合中的任何项])

Java中的if(变量==[集合中的任何项]),java,arrays,collections,Java,Arrays,Collections,假设我有一个基元数组或一个对象列表,没关系,有没有一种简单的方法来进行这种检查: if (a_primitive == any_item_in_my_collection) { // do something } 或 不这样做 for (int i = 0; i < myArray.length; i++) { if (a_primitive == myArray[i]) { // do something } } for(int i=0;i

假设我有一个基元数组或一个对象列表,没关系,有没有一种简单的方法来进行这种检查:

if (a_primitive == any_item_in_my_collection) {
    // do something
}

不这样做

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

谢谢大家!

您必须使用数组吗?为什么不切换到基于
集合的API

然后你可以使用

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


根据实现的不同,可以在
O(1)
O(log N)
中回答此查询。请检查apache commons,并检查其包含的方法。

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

import java.util.*;

int index = Arrays.binarySearch(array, find_this);
(编辑:仅当数组已排序时:)--有关详细信息,请参阅)


我刚刚想到的另一种方法是:要保留原始数组,可以这样做:
listl=Arrays.asList(arr)
其中T是数组的类型,那么您可以执行
l.contains(o)。但我想,这对基本类型数组不起作用。

根据链接的javadoc,ListUtils是一个麻烦事:没有
包含
方法或等效方法。
可以在
O(1)
O(log N)
中回答此查询——是否存在不适用于的无序集合?我想到了ArrayList,我认为它是线性的,但我不知道Java是否真的订购了这些。
import java.util.*;

int index = Arrays.binarySearch(array, find_this);