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

JavaでのCollection.stream()。forEach()とCollection.forEach()の違い


Collection.stream()。forEach()とCollection.forEach()はどちらも、コレクションを反復処理するために使用されます。

Collection.forEach()は、コレクションのイテレータを使用します。ほとんどのコレクションでは、反復中に構造を変更することはできません。反復中に要素を追加または削除すると、すぐに同時変更例外がスローされます。 Collection.forEach()が同期されたコレクションを反復処理している場合、コレクションのセグメントをロックし、すべての呼び出しにわたって保持します。

Collection.stream()。forEach()はコレクションの反復にも使用されますが、最初にコレクションをストリームに変換し、次にコレクションのストリームを反復処理するため、処理順序は定義されていません。また、同時変更例外もスローされます。反復中に構造上の変更が発生した場合は、すぐに例外がスローされます。

Sr。いいえ。
キー
Collection.forEach()
Collection.stream()。forEach()

1

基本

Collection.forEach()はコレクションのイテレータを使用します

Collection.stream()。forEach()はコレクションの反復にも使用されますが、最初にコレクションをストリームに変換してから、コレクションのストリームを反復処理します

2

注文

Iterableが指定されている場合は、常にIterableの反復順序で実行されます。

順序が定義されていません

3

ロック

同期されたコレクションで反復が発生している場合は、コレクションをロックし、すべての呼び出しで保持します

コレクションはロックされません

4.

例外

コレクションで構造上の変更が発生した場合は、すぐに例外がスローされます

例外は後でスローされます

Example Collection.stream()。forEach

import java.util.ArrayList;
import java.util.List;
public class Main {
   public static void main(String[] args) {
      List list= new ArrayList();
      list.add("Ram");
      list.add("TutorialPoints");
      list.stream().forEach(System.out::print);
   }
}

Example Collection.forEach

import java.util.ArrayList;
import java.util.List;
public class Main {
   public static void main(String[] args) {
      List list= new ArrayList();
      list.add("Ram");
      list.add("TutorialPoints");
      list.forEach(System.out::print);
   }
}

  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は、挿入順序、つまり