[英]The time complexity of Iterator() in java
我是Java新手。 我有一個關於java iterator()的時間復雜性的問題。
Set<Integer> set = new HashSet<>();
Iterator<Integer> iter = set.iterator(); ==> (2)
我想知道第2步的時間復雜度是多少? 它是常數時間O(1)還是取決於集合的大小?
謝謝
調用iterator()
是常量時間。 這是一個方法調用,它返回您正在調用的集合上的Iterator
實例。 實際上使用while (hasNext())
使用迭代器迭代集合將是O(n)
當你調用iterator()
方法時,你不會在任何地方循環。 此方法只返回元素上的迭代器,並且該時間是常量,因此您不會為此計算時間復雜度。
無論何時從一組元素訪問元素,都可以計算時間復雜度。 例如,當您訪問這樣的元素時:
while(iterator.hasNext()) {
Object element = iterator.next();
}
這是您可以計算時間復雜度的地方,在這種情況下它將是O(n)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.