これら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
仕様。