我正在使用Set
项。
Set<Objects> myObjects
这Set
可能包含数千个项目。对我来说,重要的是可以Set
通过O(1)检查其中是否存在项。
我知道a有一种contains
方法,Set
但是按什么顺序起作用?它是由O(1)起作用吗?
另外,如果效率不高,如何用O(1)检验其存在性呢?
HashSet.contains()
预期的运行时间为 O(1)
从Javadoc:
该类为基本操作(添加,删除,包含和大小)提供恒定的时间性能,假设哈希函数将元素正确分散在存储桶中。对此集合进行迭代需要的时间与HashSet实例的大小(元素的数量)加上后备HashMap实例的“容量”(存储桶的数量)之和成比例。因此,如果迭代性能很重要,则不要将初始容量设置得过高(或负载因数过低),这一点非常重要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句