Java 8 で導入された Java Streams により、一連の要素に対する関数型スタイルの操作が可能になります。これらは、より宣言的で読みやすい方法でデータのコレクションを処理する強力な方法を提供します。
ターミナル オペレーターは、ストリーム パイプラインの終了をマークする操作です。これらはストリーム内のデータの処理をトリガーし、結果または副作用を生成します。ターミナル オペレーターが呼び出されると、ストリームは消費されたとみなされ、それ以上の操作は実行できなくなります。
端末オペレーターの一般的な例:
コード例:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class TerminalOperatorExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie"); // Terminal operator: forEach names.stream().forEach(name -> System.out.println("Name: " + name)); // Terminal operator: collect List<String> filteredNames = names.stream() .filter(name -> name.startsWith("A")) .collect(Collectors.toList()); System.out.println("Filtered Names: " + filteredNames); } }
デモ結果:
Name: Alice Name: Bob Name: Charlie Filtered Names: [Alice]
中間演算子は、ストリームを別のストリームに変換する演算です。端末オペレーターが呼び出されるまで、処理はトリガーされません。これらの演算子は操作のパイプラインを構築するために使用され、効率的なデータ処理と操作が可能になります。
中間演算子の一般的な例:
コード例:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class IntermediateOperatorExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Alice"); // Intermediate operators: filter and map List<String> transformedNames = names.stream() .filter(name -> name.startsWith("A")) .map(String::toUpperCase) .distinct() .collect(Collectors.toList()); System.out.println("Transformed Names: " + transformedNames); } }
デモ結果:
Transformed Names: [ALICE]
効率的なストリーム処理には、これらの演算子の違いを理解することが重要です。
Java ストリームの端末演算子と中間演算子を理解することは、効率的で読みやすいコードを作成するために重要です。ターミナル オペレーターはストリーム処理パイプラインを完成させ、中間オペレーターはパイプラインを構築して変換します。これらの演算子を効果的に活用することで、より宣言的かつ機能的な方法でデータ処理タスクを処理できます。
ご質問がある場合、またはさらに詳しい説明が必要な場合は、お気軽に以下にコメントしてください。
詳細については、 で投稿をご覧ください: Java ストリームの端末と中間オペレーターの理解: 主な違いと例
以上がJava Streams の端末オペレータと中間オペレータの理解: 主な違いと例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。