我正在使用項目的Set
。檢查項中是否存在項目由O設置(1)
Set<Objects> myObjects
此Set
可能包含數千個項目。 O(1)可以檢查Set
中的物品是否存在,這一點很重要。
我知道Set
有一個contains
方法,但它的工作順序是什麼?它由O(1)工作嗎?
另外,如果效率不高,如何通過O(1)檢查存在?
我正在使用項目的Set
。檢查項中是否存在項目由O設置(1)
Set<Objects> myObjects
此Set
可能包含數千個項目。 O(1)可以檢查Set
中的物品是否存在,這一點很重要。
我知道Set
有一個contains
方法,但它的工作順序是什麼?它由O(1)工作嗎?
另外,如果效率不高,如何通過O(1)檢查存在?
HashSet.contains()
有O(1)
預期的運行時間從Javadoc:
這個類提供了基本操作(添加,刪除,包含和大小)一定時間的表現,假設哈希函數將元素在桶中正確地分散。迭代此集合需要的時間與HashSet實例的大小(元素數量)加上支持HashMap實例的「容量」(桶的數量)的總和成正比。因此,如果迭代性能很重要,不要將初始容量設置得太高(或者負載因子太低)是非常重要的。
'Set'是一個界面 – keyser