イテレータと列挙の違いは何ですか

目次:

Anonim

NS 主な違い イテレータと列挙の間はそれです イテレータを使用してコレクションの要素を読み取ったり削除したりすることは可能ですが、列挙型を使用してコレクションの要素を読み取ることのみが可能です。

コンピュータプログラムは、CPUが特定のタスクを実行できるようにするための一連の命令です。プログラマーは、Javaなどの高級プログラミング言語を使用してプログラムを作成できます。 Javaには一連のオブジェクトを操作するメカニズムがあります。それらの2つは、イテレータと列挙型です。

列挙型、イテレータ、Java

イテレータとは

イテレータは、Javaコレクションフレームワークのインターフェイスです。言い換えれば、コレクションの要素を次々に通過することができます。リスト、セット、マップなどの要素をトラバースすることができます。イテレータを使用すると、呼び出し元は、要素の反復中に指定されたコレクションから要素を削除できます。

図1:イテレータを備えたJavaプログラム

上記のプログラムには、listというArrayListがあります。 addメソッドは、リストにアイテムを追加するのに役立ちます。 14行目は、リスト内のアイテムを印刷します。 itrはIterator型であり、iterator()はイテレーターをコレクションの先頭に戻します。 whileループは、hasNext()メソッドを呼び出します。コレクションにさらに要素がある場合はtrueを返します。トラバースする要素がそれ以上ない場合はfalseを返します。ループ内では、next()メソッドはコレクション内のすべての要素を取得するのに役立ちます。同様に、itrはコレクション内の要素を読み取って表示します。

21行目で、itrはコレクションから最後の要素である3つを削除します。最後に、残りの要素である1と2がコンソールに表示されます。

列挙とは何ですか

列挙は、オブジェクトのコレクションで一度に1つの要素を取得できるようにするインターフェイスです。列挙は、新しいコードでは廃止されたと見なされます。ただし、Vectorなどのレガシークラスによって定義されたいくつかのメソッドで使用されます。

図2:列挙型のJavaプログラム

上記のプログラムでは、日は列挙型です。 dayNamesはVectorのオブジェクトです。 addメソッドは、Vectorに要素を追加するのに役立ちます。 whileループは、要素を通過するのに役立ちます。取得する要素がさらにある場合、hasMoreElements()はtrueを返します。一方、すべての要素が列挙されると、falseが返されます。さらに、nextElement()メソッドはwhileループ内にあり、列挙内の次のオブジェクトを汎用オブジェクト参照として返すのに役立ちます。

イテレータと列挙の違い

意味

Iteratorは、JavaのCollectionフレームワークのインターフェースであり、コレクションをトラバースできます。ただし、列挙は、オブジェクトのコレクション内の要素を列挙できるようにするメソッドで構成されるインターフェイスです。

アクセス

イテレータを使用して要素を読み取ったり削除したりすることは可能ですが、列挙子を使用してのみ要素を読み取ることができます。

メソッド

IteratorはhasNext()、next()、およびremove()メソッドを提供し、EnumerationはhasMoreElements()およびnextElement()メソッドを提供します。

代替案

さらに、プログラマーはIteratorの代わりにListIteratorを使用できますが、プログラマーはEnumerationの代わりにIteratorを使用できます。

結論

簡単に言うと、IteratorとEnumerationはどちらも、コレクションの要素をトラバースするのに役立つJavaのインターフェースです。イテレータと列挙の主な違いは、イテレータを使用してコレクションの要素を読み取ったり削除したりできるのに対し、列挙を使用してコレクションの要素を読み取ることしかできないことです。さらに、プログラマーはListIteratorを使用してコレクションの要素を調べることもできます。

参照:

1.「Javaイテレータインターフェイス–Javatpoint」。 Www.javatpoint.com、ここから入手できます。 2.Tutorialspoint.com。 「JavaTheEnumerationInterface」。 Www.tutorialspoint.com、ここから入手できます。

イテレータと列挙の違いは何ですか