Java 8 の Stream API:reduce() メソッドを使用してコレクションに対して集計操作を実行する方法
はじめに:
Java 8 では、より強力で強力な機能を提供する Stream API が導入されました。コレクションデータを操作する便利な方法。 Stream API のreduce() メソッドは、コレクションの集計操作において重要な役割を果たします。この記事では、reduce() メソッドの使用法を紹介し、いくつかのコード例を示します。
1.reduce() メソッドの概要
reduce() メソッドは、コレクションに対する集計操作のための Stream API のコア メソッドの 1 つです。これは、コレクション要素がどのように集約されるかを定義する BinaryOperator 型のパラメーターを受け入れます。 reduce() メソッドは、コレクションの要素に 1 つずつ集計操作を適用し、オプションの結果を返します。
reduce() メソッドには 2 つのオーバーロード バージョンがあります:
reduce() メソッドの最初のバージョンは、初期値の ID と二項演算子のアキュムレータを受け入れます。計算の開始点として初期値を取得し、各要素をアキュムレータに適用し、最終的に集計結果を返します。
reduce() メソッドの 2 番目のバージョンは、二項演算子アキュムレータのみを受け入れます。初期値を提供しないため、考えられる結果を表す Optional オブジェクトを返します。
2.reduce() メソッドの使用例
以下は、reduce() メソッドのさまざまな使用法を示すいくつかのコード例です:
はい コレクション要素の合計:
Listc0f559cc8d56b43654fcbe4aa9df7b4a数値 = Arrays.asList(1, 2, 3, 4, 5);
int sum =数値.stream()
.reduce(0, (a, b) -> a + b);
System. out .println(sum); // 出力: 15
コレクション要素の最大値を検索します:
List
Optionalc0f559cc8d56b43654fcbe4aa9df7b4a max =numbers.stream()
.reduce(Integer::max);
System.out.println(max.orElse(0)); // 出力: 5
文字列を連結します:
Listf7e83be87db5cd2d9a8a0b8117b38cd4 strings = Arrays.asList("Java", "Stream", "API");
String result = strings.stream()
.reduce("", (a, b) -> a + " " + b);
System.out.println(result); // 出力: Java Stream API
カスタム集計操作:
List0833d296851a1e081f2175a4cbfa7135 people = Arrays.asList (
新しい人("アリス", 20),
新しい人("ボブ", 30),
新しい人("チャーリー", 25)
);
int totalAge = people.stream()
.reduce(0, (sum, p) -> sum + p.getAge(), (a, b) -> a + b);
System.out.println(totalAge); // 出力: 75
この例では、合計するカスタム二項演算子を使用します。人物オブジェクトの年齢。
結論:
reduce() メソッドは、コレクション集約操作のための Stream API の重要なメソッドの 1 つです。 reduce() メソッドを使用すると、セットの要素の合計、最大値の取得、文字列の連結などの操作を実行できます。実際の開発では、必要に応じて二項演算子をカスタマイズして、より複雑な集計演算を実装できます。 reduce() メソッドの使用に熟練すると、コードをより簡潔かつ効率的にすることができます。
以上がJava 8 のストリーム API:reduce() メソッドを使用してコレクションに対して集計操作を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。