Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでのIteratorとSpilledIteratorの違い。


イテレータとスプリットイテレータの両方のインターフェイスは、コレクションを反復処理するために使用されます。

並列処理を実現するために、Java8で分割イテレータが導入されました。指定された要素のセットを分割し、異なる独立したスレッドを使用して並列操作を実行できます。それは、要素を平行に、そして順次に横断することができます。 splitIteratorインターフェースには次の重要なメソッドがあります-

  • trySplit-指定された要素のセットを複数の部分に分割するために使用されます。
  • tryAdvance-イテレータインターフェイスで使用可能なhasNext/nextメソッドと同等です
  • getExactSizeIfKnown<>-指定された要素のセットのサイズを取得するために使用されます。
Sr。いいえ。 キー イテレータ 分割イテレータ
1
基本
コレクションの要素をトラバースするために使用できます
Streamでも使用できます。
2
一括操作
要素を1つずつトラバースするためにのみ使用できます
要素をまとめてトラバースするために使用できます。
3
シーケンシャル/パラレル
要素を順番にトラバースすることしかできません
要素を順次および並列にトラバースできます。
4。
外部/内部イテレータ
Iteratorは、外部反復を使用してコレクションを反復します
Spliteratorは内部反復を使用します

スプリッターの例

public class Main {
   public static void main(String args[]) {
      List<Integer> listOfInteger = new ArrayList<>();
      listOfInteger.add(78);
      listOfInteger.add(10);
      listOfInteger.add(20);
      listOfInteger.add(30);

      Spliterator<Integer> s = listOfInteger.spliterator();
      Spliterator<Integer> s1 = s.trySplit();

      s.forEachRemaining(System.out::println);
      System.out.println("Traverse Second Half ");
      s1.forEachRemaining(System.out::println);
   }
}

  1. JavaでのArrayListとHashSetの違い

    HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり

  2. JavaでのIteratorとListIteratorの違い

    Javaは、コレクションに格納されているデータを1つずつトラバースするために、これら2つのインターフェースを提供しました。イテレータとリストイテレータの内部実装により、それらは異なりますが、両方のイテレータの主なアジェンダは同じです。 IteratorとListIteratorの重要な違いは次のとおりです。 Sr。いいえ。 キー イテレータ ListIterator 1 該当する イテレータは、コレクションのタイプに関係なく、任意のコレクションをトラバースするために使用できます。 リストイテレータは、arraylist、linkedlistなどのリストコレクションが実装