JavaのEnumerationインターフェース
JavaのEnumerationインターフェースは、コレクション内の要素を順次取得するためのインターフェースです。
現在では、Iteratorインターフェースがより一般的に使用されていますが、Enumerationは依然として利用可能です。
Enumerationインターフェース
Enumerationインターフェースには2つの主要メソッドがあります。
- hasMoreElements(): これ以上要素がある場合にtrueを返します。
- nextElement(): 次の要素を返します。
以下は、Enumerationインターフェースを使用する簡単な例です。
import java.util.Vector; import java.util.Enumeration; public class EnumerationExample { public static void main(String[] args) { // ベクターを作成し、要素を追加 Vector<String> vector = new Vector<>(); vector.add("Element 1"); vector.add("Element 2"); vector.add("Element 3"); // Enumerationを取得 Enumeration<String> enumeration = vector.elements(); // 要素を列挙 while (enumeration.hasMoreElements()) { String element = enumeration.nextElement(); System.out.println(element); } } }
この例では、Vectorクラスを使用して3つの要素を含むベクターを作成し、その要素をEnumerationを使用して列挙しています。
hasMoreElementsメソッドを使ってコレクションにまだ要素があるかを確認し、nextElementメソッドを使って次の要素を取得します。
Iteratorインターフェースを使用して実装した場合
import java.util.Vector; import java.util.Iterator; public class IteratorExample { public static void main(String[] args) { // ベクターを作成し、要素を追加 Vector<String> vector = new Vector<>(); vector.add("Element 1"); vector.add("Element 2"); vector.add("Element 3"); // Iteratorを取得 Iterator<String> iterator = vector.iterator(); // 要素を列挙 while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } } }
以下は主な変更点です。
1. EnumerationをIteratorに置き換えました。
2. vector.elements()メソッドの代わりに、vector.iterator()メソッドを使用してIteratorを取得しました。
3. hasMoreElements()メソッドの代わりに、hasNext()メソッドを使用しています。
4. nextElement()メソッドの代わりに、next()メソッドを使用しています。
EnumerationとIteratorの違い
- Iteratorインターフェースは、removeメソッドを提供し、コレクションから現在の要素を削除することができますが、Enumerationにはそのようなメソッドはありません。
- Enumerationは古いコレクションフレームワークの一部であり、新しいコレクションにはIteratorの使用が推奨されています。
Enumerationインターフェースはレガシーコードで使用されることが多いため、Iteratorを使用することが一般的です。