Javaの列挙と反復子の違い 質問する

Javaの列挙と反復子の違い 質問する

これら2つのインターフェースの正確な違いは何でしょうか?Enumeration使用するよりも利点があるIterator? 詳しく説明していただける方がいらっしゃいましたら、参考記事をいただければ幸いです。

ベストアンサー1

Java API仕様を見ると、Iteratorインターフェースには、Enumeration:

反復子は列挙型と次の 2 つの点で異なります。

  • 反復子を使用すると、呼び出し元は、明確に定義されたセマンティクスを使用して反復中に基になるコレクションから要素を削除できます。
  • メソッド名が改善されました。

要するに、 と はどちらもEnumeration連続Iteratorする要素を返しますが、Iterator冗長性を短縮することでメソッド名が改善され、メソッドが追加されましたremove。次に、並べて比較します。

  Enumeration                     Iterator
  ----------------                ----------------
  hasMoreElements()               hasNext()
  nextElement()                   next()
  N/A                             remove()

Java API仕様にも記載されているように、新しいプログラムでは、Iteratorよりも を優先する必要がありますEnumeration。これは、「Javaコレクションフレームワークでは、イテレータが列挙の代わりとなる」ためです。(Iterator仕様。

おすすめ記事