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

Java8での中間操作と端末操作の違い


ストリームはJava8で導入され、ストーティング要素ではなくデータのグループを処理するためにのみ使用されます。実際のコレクションは変更されず、パイプライン化されたメソッドに従って結果を提供するだけです。

Stream apiは複数の操作をサポートし、操作は2つの部分に分かれています-

  • 中間操作-これらの操作は、他のメソッドをパイプライン化し、他のストリームに変換するために使用されます。これらの操作は、ターミナル操作が実行されるまで呼び出されないため、結果は生成されません。以下に例を示します-
  • sorted(Comparator
  • ピーク(消費者
  • distinct()
  • ターミナル操作-これらの操作は、結果を生成するために使用されます。他のメソッドを連鎖させるために使用することはできません。以下に例を示します-
  • forEach
  • カウント
  • toArray
Sr。いいえ。 キー 中間操作 端末操作
1
基本
これらの操作は、他のメソッドをパイプライン化し、他のストリームに変換するために使用されます
Javaでのターミナル操作は、最終ステップとしてストリームに適用されるメソッドです。
2
リターンタイプ
別のストリームのみを返します。
最終結果を返します。
3
メソッド
sorted(Comparator
peek(Consumer
明確()
forEach
カウント
toArray


4。
ユースケース
これらの操作は、ストリームを別のストリームに変換するために使用する必要があります
結果を生成するために使用できます。

中間およびターミナル操作の例

public class Main {
   public static void main(String args[]) throws InterruptedException, ExecutionException {
      List<String> laptopList = new ArrayList();
      laptopList.add("DELL");
      laptopList.add("ACER");
      laptopList.add("HCL");

      // Intermediate operation
      laptopList.sort((p1, p2) -> p1.compareTo(p2));

      // Terminal Operation
      laptopList.forEach(a -> {
         System.out.println(a);
      });
   }
}

  1. Javaでのイテレータと列挙の違い

    IteratorとEnumerationはどちらも、コレクションの要素をトラバースしてアクセスするためのカーソルです。どちらもコレクションフレームワークに属しています。列挙は、コレクションフレームワークのJDK1.2バージョンのJDK1.0およびIteratorで追加されました。 コレクション内の要素への読み取り専用アクセス権があるため、列挙型はコレクション内の構造を変更できません。次の方法があります: * hasMoreElements() * nextElement() 一方、イテレータはコレクション内の要素を読み取って削除できます。以下の方法があります- * hasNe

  2. JavaでのArrayListとHashSetの違い

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