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などのリストコレクションが実装