IteratorとListIteratorの違いは何ですか

目次:

Anonim

NS 主な違い IteratorとListIteratorの間にあるのは Iteratorはコレクション内の要素を順方向にのみトラバースできますが、ListIteratorはコレクション内の要素を順方向と逆方向の両方にトラバースできます。

IteratorとListIteratorは、Javaの2つのインターフェースです。イテレータは、リスト、セット、およびマップで使用されます。一方、ListIteratorはリストでのみ使用されます。 ListIteratorでは、コレクション内のアイテムを順方向および逆方向に通過することができます。逆に、イテレータはコレクション内のアイテムを順方向にのみ通過できます。

コレクション、インターフェース、イテレーター、ListIterator

イテレータとは

イテレータは、コレクションフレームワークのインターフェイスです。これにより、コレクション内の各要素を次々に調べることができます。リスト、セット、およびマップをトラバースするのに役立ちます。ただし、イテレータを使用して前方にトラバースすることのみが可能です。プログラム例は以下のとおりです。

図01:イテレータを使用したJavaプログラム

上記のプログラムには、colorsというArrayListがあります。 addメソッドは、コレクションにアイテムを挿入するのに役立ちます。 iterator()は、イテレータをコレクションの先頭に戻します。 whileループは、ループが繰り返されるたびにhasNext()メソッドを呼び出します。コレクションで使用可能な次の要素がある場合、このメソッドはtrueを返します。ただし、すべての要素がすでにトラバースされている場合はfalseを返します。ループ内では、next()メソッドがコレクション内の各要素を取得するのに役立ちます。コレクションの次の要素を返します。 System.out.printlnは、コンソールに要素を表示します。

ListIteratorとは

ListIteratorは、コレクションに存在する要素を次々にトラバースできるようにするコレクションフレームワークのインターフェイスです。リスト内のアイテムのみをトラバースできます。さらに、要素を順方向と逆方向の両方にトラバースすることが可能です。以下のプログラムを参照してください。

図02:ListIteratorを使用したJavaプログラム

上記のプログラムには、colorsという配列リストがあります。 addメソッドは、コレクションに要素を挿入するのに役立ちます。 listIterator()は、イテレータをコレクションの先頭に戻します。最初のwhileループは、すべての反復でhasNext()メソッドを呼び出します。ループ内では、next()メソッドを使用して、コレクションの次の要素を返します。 System.out.printlnは、コンソールに要素を表示します。したがって、すべての要素がコンソールに順方向に表示されます。

次のwhileループは、ループが繰り返されるたびにhasPrevious()メソッドを呼び出します。要素が使用可能な場合はtrueを返します。そうでない場合は、falseを返します。このトラバースは逆方向に発生します。ループ内では、previous()メソッドがコレクション内の各要素を取得するのに役立ちます。コレクションの前の要素を返します。 System.out.printlnは、コンソールに要素を表示します。

IteratorとListIteratorの違い

意味

イテレータは、Javaのコレクションフレームワークのインターフェイスであり、リストを順方向にトラバースします。対照的に、ListIteratorは、JavaのCollectionフレームワークのインターフェースであり、リストをいずれかの方向にトラバースし、反復中にリストを変更し、リスト内の現在の位置を取得します。したがって、これがIteratorとListIteratorの主な違いです。

トラバース

IteratorとListIteratorの重要な違いは、Iteratorはリスト、セット、およびマップをトラバースできるのに対し、ListIteratorはリストのみをトラバースできることです。

移動方向

索引

さらに、IteratorとListIteratorのもう1つの違いは、Iteratorには要素のインデックスを取得するメソッドがないことです。ただし、ListIteratorを使用して要素のインデックスを取得することは可能です。

要素を追加

Iteratorはコレクションに要素を追加できませんが、ListIteratorはadd(E e)を使用してコレクションに要素を追加できます。したがって、これはIteratorとListIteratorのもう1つの違いです。

変更

また、IteratorとListIteratorのもう1つの違いは、Iteratorがコレクション内の要素を変更できないことです。一方、ListIteratorは、set(E e)を使用してコレクション内の要素を変更できます。

一般的な方法

hasNext()、next()、remove()はイテレータのいくつかの一般的なメソッドですが、hasNext()、next()、hasPrevious()、previous()、remove、add(E e)、previousIndex()、set(E e )はListIteratorのいくつかの一般的なメソッドです。

結論

IteratorとListIteratorには明確な違いがありますが、これらの用語を同じ意味で使用する人もいます。 IteratorとListIteratorの主な違いは、Iteratorはコレクション内の要素を順方向にのみトラバースできるのに対し、ListIteratorはコレクション内の要素を順方向と逆方向の両方にトラバースできることです。

リファレンス:

1.シン、チャイタンヤ。 「Javaイテレータと例」 Beginnersbook.com、2014年6月15日、こちらから入手可能2。シン、チャイタニヤ、ウメッシュ。 「JavaのListIteratorと例」 Beginnersbook.com、2014年6月15日、こちらから入手可能3。 ListIterator(Java Platform SE 7)、2018年10月6日、こちらから入手できます。

IteratorとListIteratorの違いは何ですか