Streamの問題は、Streamでコンパイルするときに、すでに操作されているか、閉じられています。



Problem Stream Has Already Been Operated Upon



ストリーム:単一の列コレクション/配列に対する一連の操作をカプセル化するAPI

Streamオブジェクトを取得します:*** すべてのストリームオブジェクトは1回のみ使用できます



Stream stream = Stream.of('Zhang Sanfeng', 'Zhang Cuishan', 'Zhao Min', 'Zhou Zhiruo', 'Zhang Wuji') stream.skip(2).filter(name -> name.startsWith(' ')) System.out.println(stream.count())

上記のコードコンパイルは、ストリームがすでに操作されているか、エラーを閉じたことを報告します。解決策は正しい

Stream stream = Stream.of('Zhang Sanfeng', 'Zhang Cuishan', 'Zhao Min', 'Zhou Zhiruo', 'Zhang Wuji') Stream stream1 = stream.skip(2).filter(name -> name.startsWith(' ')) System.out.println(stream1.count())
|_+_|

リスト/セット
。ストリーム()

[]
Stream.of()

地図
.keySet()。stream()
.entrySet()。stream()
.values()。stream()

StreamのAPIを呼び出して、操作を実行します。
Delayメソッド:このタイプのメソッドが呼び出された後、[新しいStreamオブジェクト]が返され、ビジネス操作は実行されません。
filter-データフィルタリングを実現します
map-データ型のフローを別のデータ型のフローに変換します
スキップ-最初のいくつかをスキップします
制限-最初のいくつかを取る
Stream.concat()-ストリームオブジェクトをマージします

終了メソッド:このタイプのメソッドが呼び出された後、Streamオブジェクトは返されず、以前のすべてのビジネス操作がトリガーされます
forEach ---トラバーサルを実現する
count-カウントを実現します
collect-ストリーム内のデータをコレクションに再度変換します