Java の list.forEach() と list.stream().forEach() の違いは何ですか?
まず第一に、これらの関数は配列の各要素を走査し、入力パラメーターの accept() メソッドを実行することですが、実装方法が異なり、特定のケースでは、実行により異なる結果が生成されます。
ほとんどの場合、どちらも同じ結果を生成しますが、いくつかの微妙な違いが見られます。
概要
まず、反復可能なリストを作成します:
List<String> list = Arrays.asList("A","B","C","D");
最も簡単な方法は、拡張された for ループを使用することです:
for(String s : list"){ //something }
関数を使用する Java では、forEach() を使用することもできます。これをコレクションに対して直接実行できます:
Consumer<String> consumer = s -> {System.out::println}; list.forEach(consumer);
または、コレクションのストリームで forEach() を呼び出すこともできます:
list.stream().forEach(consumer);
どちらのバージョンもリストを反復処理してすべての要素を出力します:
ABCD ABCD
この単純な例では、使用する forEach() に違いはありません。
Difference
list.forEach() は拡張された for ループを使用します
default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } }
list.stream().forEach(): まずコレクションをストリームに変換し、次に、ストリームを反復します。
トラバース中に削除する場合、forEach はすぐに失敗する可能性があり、stream().forEach() は配列がトラバースされるまで待機してから例外をスローします
public class DeleteDifference { public static void main(String[] args) { List<String> list = Arrays.asList("A", "B", "C", "D"); try { list.forEach(item -> { System.out.println(item); list.remove(0); }); } catch (Exception e) { e.printStackTrace(); } list.stream().forEach(item -> { System.out.println(item); list.remove(0); }); } }
以上がJava の list.forEach() と list.stream().forEach() の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです
