Java相当于Python'in' - 用于集成员资格测试?

9 python java membership set

我想检查一个是否item存在item set.

我想在java中这样做:

def is_item_in_set(item, item_set):
    return item in item_set
Run Code Online (Sandbox Code Playgroud)

(如果我的python不是pythonic,请道歉.只是想传达我的意图.)

我写过这个:

boolean isItemInSet(String item, String[] itemSet) {
    for(int i =0; i < itemSet.length; ++i) {
        if(item.equals(itemSet[i])) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来测试Java中的set-membership

nne*_*neo 12

你不能用一个直的数组来做,但你可以Set<T>通过调用.contains.如果您觉得自己会进行大量isItemInSet调用,请考虑使用Sets而不是数组 - 您会更开心.

例如,使用a HashSet<T>进行isItemInSetO(1)操作(平均).设置插入和删除也同样快.实际上,HashSet<T>Java中的一个基本上与Python相同set()(类似的底层概念和性能特征) - 您会看到在集合上进行查询,插入或删除的许多调用都会大大提高速度.

  • 注意`Set <T>`是一个接口.您将需要使用一个实现子类,如`HashSet <T>`(建议用于大多数用途). (4认同)