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-ストリーム内のデータをコレクションに再度変換します