2016-11-02 15 views
0

私はJavaを初めて使用しています。私は、java iterator()の時間の複雑さについて質問しています。JavaのIterator()の時間複雑度

Set<Integer> set = new HashSet<>(); 

Iterator<Integer> iter = set.iterator(); ==> (2) 

手順2の時間の複雑さは何ですか?コンスタント時間O(1)か、セットの大きさによって異なりますか?呼び出しiterator()

おかげ

答えて

2

は一定の時間です。呼び出すコレクションのIteratorインスタンスを返すメソッド呼び出しです。実際には、while (hasNext())を使用してイテレータを使用してコレクションを反復するとO(n)

0

のメソッドを呼び出すと、どこでもループしていません。このメソッドは要素のイテレータを返すだけで、その時間は一定であるため、このために時間の複雑さを計算しません。

要素のグループから要素にアクセスしているときは、時間の複雑さを計算します。例えばあなたはこのような要素にアクセスする場合:

while(iterator.hasNext()) { 
    Object element = iterator.next(); 
} 

を使用すると、時間の複雑さを計算することができ、この場合には、それはO(n)だろう場所です。