Javaでのイテレータと列挙の違い
IteratorとEnumerationはどちらも、コレクションの要素をトラバースしてアクセスするためのカーソルです。どちらもコレクションフレームワークに属しています。列挙は、コレクションフレームワークのJDK1.2バージョンのJDK1.0およびIteratorで追加されました。
コレクション内の要素への読み取り専用アクセス権があるため、列挙型はコレクション内の構造を変更できません。次の方法があります:
- * hasMoreElements()
- * nextElement()
一方、イテレータはコレクション内の要素を読み取って削除できます。以下の方法があります-
- * hasNext()
- * next()
- * remove()
| Sr。いいえ。 | キー | ||
|---|---|---|---|
| 1 | 基本 | Iteratorでは、コレクション内の要素をトラバースしながら要素を読み取って削除できます。 | 列挙を使用すると、コレクション内の要素をトラバースしているときにのみ要素を読み取ることができます。 |
| 2。 | アクセス | コレクションフレームワークの任意のクラスで使用できます。 | VectorやHashTableなど、コレクションフレームワークのレガシークラスでのみ使用できます。 |
| 3。 | フェイルセーフおよびフェイルセーフ | スレッド中にコレクションから要素を削除するなど、コレクション内の変更はコレクションを繰り返し、同時変更例外をスローします。 | 列挙は本質的にフェイルセーフです。同時変更例外をスローしません |
| 4。 | 制限 | 順方向の反復のみが可能です | 列挙を使用して削除操作を実行することはできません。 |
| 5。 | メソッド | 以下の方法があります- * hasNext() *次() *削除する() | 以下の方法があります- * hasMoreElements() * nextElement() |
列挙の例
class EnumerationExample {
public static void main(String args[]) {
List list = new ArrayList(Arrays.asList( new String[] {"Apple", "Cat", "Dog", "Rat"}));
Vector v = new Vector(list);
delete(v, "Dog");
}
private static void delete(Vector v, String name) {
Enumeration e = v.elements();
while (e.hasMoreElements()) {
String s = (String) e.nextElement();
if (s.equals(name)) {
v.remove(name);
}
}
// Display the names
System.out.println("The names are:");
e = v.elements();
while (e.hasMoreElements()) {
// Prints elements
System.out.println(e.nextElement());
}
}
} イテレータの例
class IteratorExample {
public static void main(String args[]) {
List list = new ArrayList(Arrays.asList( new String[] {"Apple", "Cat", "Dog", "Rat"}));
Vector v = new Vector(list);
delete(v, "Dog");
}
private static void delete(Vector v, String name) {
Iterator i = v.iterator();
while (i.hasNext()) {
String s = (String) i.next();
if (s.equals(name)) {
i.remove();
}
}
// Display the names
System.out.println("The names are:");
i = v.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}
} -
JavaでのArrayListとHashSetの違い
HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり
-
JavaでのIteratorとListIteratorの違い
Javaは、コレクションに格納されているデータを1つずつトラバースするために、これら2つのインターフェースを提供しました。イテレータとリストイテレータの内部実装により、それらは異なりますが、両方のイテレータの主なアジェンダは同じです。 IteratorとListIteratorの重要な違いは次のとおりです。 Sr。いいえ。 キー イテレータ ListIterator 1 該当する イテレータは、コレクションのタイプに関係なく、任意のコレクションをトラバースするために使用できます。 リストイテレータは、arraylist、linkedlistなどのリストコレクションが実装