私はJavaを初めて使用しています。私は、java iterator()の時間の複雑さについて質問しています。JavaのIterator()の時間複雑度
Set<Integer> set = new HashSet<>();
Iterator<Integer> iter = set.iterator(); ==> (2)
手順2の時間の複雑さは何ですか?コンスタント時間O(1)か、セットの大きさによって異なりますか?呼び出しiterator()
おかげ
私はJavaを初めて使用しています。私は、java iterator()の時間の複雑さについて質問しています。JavaのIterator()の時間複雑度
Set<Integer> set = new HashSet<>();
Iterator<Integer> iter = set.iterator(); ==> (2)
手順2の時間の複雑さは何ですか?コンスタント時間O(1)か、セットの大きさによって異なりますか?呼び出しiterator()
おかげ
は一定の時間です。呼び出すコレクションのIterator
インスタンスを返すメソッド呼び出しです。実際には、while (hasNext())
を使用してイテレータを使用してコレクションを反復するとO(n)
のメソッドを呼び出すと、どこでもループしていません。このメソッドは要素のイテレータを返すだけで、その時間は一定であるため、このために時間の複雑さを計算しません。
要素のグループから要素にアクセスしているときは、時間の複雑さを計算します。例えば、あなたはこのような要素にアクセスする場合:
while(iterator.hasNext()) {
Object element = iterator.next();
}
を使用すると、時間の複雑さを計算することができ、この場合には、それはO(n)
だろう場所です。