HashSet disjoint() 复杂度

HashSet disjoint() complexity

O/time 两个整数散列集的 Java 集合 disjoint() 方法的复杂度是多少?

非常感谢任何帮助,真的很困惑,因为我不确定它是 O(1) 还是 O(n)。

我知道哈希集包含的是一个复杂度为 O(1) 的运算,但我不确定不相交运算是否循环遍历集合 1 的所有元素并检查集合 2 是否包含这些元素中的任何一个。

复杂度为 O(n)。

让我们假设集合查询是 O(1)。您需要遍历其中一个集合,并在另一个集合中进行查询以查看它是否包含项目。

因此,集合迭代至少需要O(n)的时间(你可以选择用更小的尺寸迭代集合,他们在源代码中就是这样做的)。

总的来说,时间复杂度是O(n)。