php エディター Yuzai が、Java Q&A の今号をお届けし、Java でストリーミングを使用して配列リストを処理し、以前のレコードと比較する方法について説明します。この記事では、Java のストリーミング機能を使用して配列リストを効率的に操作し、以前のレコードと比較する方法を学びます。このトピックをさらに深く掘り下げて、Java プログラミングの理解とスキルを向上させましょう。
IDとint値を含む単純なrecordaクラスがあります。複数の「ソートされた」recorda 要素がリストに保存されます。
リストを反復処理して、現在の要素と前の要素を比較し、それらの値の違いを見つけたいと考えています。
コード:
リーリー(可能であれば)ストリームを使用して現在のrecorda.valueと前のrecorda.valueを比較し、その結果を同じIDと値を持つrecordbにマッピングしますが、現在と前のレコードを保存したいと考えています。
最後に、recordb リストには
が含まれます。class for ループとprevious_val変数を避けたいです。ストリームを使用してこれを行う方法はありますか?
インストリームを使用できます
リーリー これは少し直感的ではないアプローチなので、実際に調べる必要がありました。
StackOverflow – Foreach Lambda の前の要素を使用した Java ストリーム。
通常、ストリーム の使用は、値のセットを 集約するためであり、必ずしも値を比較対照するためではありません。
レッスン: 集計操作 (Java™ チュートリアル > コレクション)。
これは、
Collector クラスと Collector#of メソッドを使用する例です。 基本的に、収集中に、収集された要素から前の要素を取得します。
BiConsumerパラメーターの場合、a はこれまでに収集された要素です。 リーリー ###出力### リーリー 最後に、recordb
クラスを削除して、Mapだけを使用することをお勧めします。 リーリー
以上がJava ストリーミング配列リストと以前のレコードとの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。