ホームページ  >  記事  >  Java ストリーミング配列リストと以前のレコードとの比較

Java ストリーミング配列リストと以前のレコードとの比較

WBOY
WBOY転載
2024-02-22 14:00:10631ブラウズ

php エディター Yuzai が、Java Q&A の今号をお届けし、Java でストリーミングを使用して配列リストを処理し、以前のレコードと比較する方法について説明します。この記事では、Java のストリーミング機能を使用して配列リストを効率的に操作し、以前のレコードと比較する方法を学びます。このトピックをさらに深く掘り下げて、Java プログラミングの理解とスキルを向上させましょう。

質問内容

IDとint値を含む単純なrecordaクラスがあります。複数の「ソートされた」recorda 要素がリストに保存されます。

リストを反復処理して、現在の要素と前の要素を比較し、それらの値の違いを見つけたいと考えています。

コード:

リーリー

(可能であれば)ストリームを使用して現在のrecorda.valueと前のrecorda.valueを比較し、その結果を同じIDと値を持つrecordbにマッピングしますが、現在と前のレコードを保存したいと考えています。

最後に、recordb リストには

が含まれます。
  • 1, 10, 0 //(10-0)
  • 2、15、5 //(15-10)
  • 3、25、10 //25-15
  • 4、30、5 //30-25

class for ループとprevious_val変数を避けたいです。ストリームを使用してこれを行う方法はありますか?

解決策

インストリームを使用できます

リーリー

これは少し直感的ではないアプローチなので、実際に調べる必要がありました。
StackOverflow – Foreach Lambda の前の要素を使用した Java ストリーム

通常、ストリーム の使用は、値のセットを 集約するためであり、必ずしも値を比較対照するためではありません。
レッスン: 集計操作 (Java™ チュートリアル > コレクション) これは、

Collector クラスと Collector#of メソッドを使用する例です。 基本的に、収集中に、収集された要素から前の要素を取得します。

BiConsumer

パラメーターの場合、a はこれまでに収集された要素です。 リーリー ###出力### リーリー 最後に、recordb

クラスを削除して、

Map

だけを使用することをお勧めします。 リーリー

以上がJava ストリーミング配列リストと以前のレコードとの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。