php エディター Strawberry は、Java 8 での 3 つのフィールドによるストリームのグループ化と、合計による他の 2 つのフィールドの集計に関する質問と回答を提供します。 Java プログラミングでは、ストリームはコレクションを処理する新しい方法であり、ストリームを使用することで、データをより便利に操作および処理できます。この記事では、Java 8 のストリーム関数を使用して 3 つのフィールドでグループ化し、残りの 2 つのフィールドを合計集計する方法を詳しく紹介します。この興味深い質問を一緒に考えてみましょう。
私は Java 8 を初めて使用するため、同様の質問で提供されている解決策を実装するのが困難です。助けてください。
Java 8 で、残りの 2 つの整数フィールドを合計する必要がある複数の行を返す 3 つのフィールドでグループ化する方法。 以下の dto/pojo クラスでは、uuid、msgdate、チャネルの組み合わせの一意のキーに基づいて、受信カウント フィールドと送信カウント フィールドを合計する必要があります。
リーリー//例としての初期化リスト。
リーリー出力オブジェクトには次のデータが含まれている必要があります:
uuid msgdate チャネル受信数送信数
c9c3a519 2023 年 12 月 番号 8 3
c9c3a519 2023 年 11 月 番号 4 4
c9c3a519 2023 年 12 月マニュアル 8 3
c9c3a519 2023 年 11 月マニュアル 4 4
...
...
...
結果をマップに収集します。この例では、Collectors.toMap(keyMapper, valueMapper, mergeFunction, mapFactory) を使用します。
また、簡潔にするために、ロンボク注釈を使用します。
まず、グループ化するキーと集計データを表すクラスを作成します:
リーリー リーリー次に、さらに 2 つのメソッドを使用して reportdata
を拡張し、キーと初期集計を作成します。
リーリー
リーリー
コレクターのパラメーターは次のとおりです:
- グループ化するキーを作成します (マップのキー)
- 単一の
reportdata (マップの値) から初期集計
を作成します。
- キーの競合が発生した場合、2 つの
count (マージ メソッドを参照)
をマージします。
- 結果の挿入に使用される
map のファクトリ。挿入順序を保持したいのですが、必要ない場合はパラメータを省略してデフォルトのファクトリを使用できます。
リーリー
以上がJava 8 ストリームは 3 つのフィールドでグループ化し、他の 2 つのフィールドを合計で集計しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。