JavaのAPI 8は、ストリームストリームと呼ばれる新しい抽象概念が追加されますが、宣言的な方法でデータを処理することができます。
ストリームは、Javaと集合演算の発現のための抽象度の高いを提供するために、データベースクエリデータからSQLステートメントを使用するには、同様の直感的な方法を使用しています。
このスタイル要素は、パイプライン送信の処理フローストリームの集まりとして見られることを、そしてこのようなフィルタリング、ソート、重合として、ノード導管で処理することができます。
前工程から得られた処理パイプライン中間作動(中間演算)に、そして最終的に最終的な操作(端末操作)によって結果エレメンタリストリーム
まず、ストリームを作成します
1、Collectionインタフェースは、デフォルトストリームのメソッドを持っている、これは、我々は通常(list.streamを使用)、限り、インタフェースの実装クラスとしてストリームを作成するには、この方法で行くことができます
Lists.newArrayList()(ストリーム)。
図2に示すように、ストリームの静的メソッド
// 1、ビルド方法によって作成
Stream.Builderビルダー= Stream.builder(); builder.accept( 1 ); builder.add( 2 ) ストリームビルド = builder.build()。
// 2、方法Stream.ofにより作成
// オーバーロードされたのは、一つには、可変パラメータを作成し、オブジェクトを受け入れるようにされ、2つのメソッドがあり受け入れるストリーム のストリームS1 = Stream.of(1。); ストリームS2 =ストリーム。 (1,2,3,4,5)の。
// 3、Stream.generateの静的メソッドを介してフローを作成します。これは、このメソッドは、ストリームの長さを制限するために、この関数を呼び出していない場合の制限、それは無制限を作成していきます、メソッドを呼び出して、無限の流れを作成することであることに注意することが重要です
//行動パラメーターが戻り値を持っている必要があり、ここで渡された、ある、行動その結果、作成されたオブジェクトです。
ストリーム生成 = Stream.generate(数学::ランダム).limit(10 ); ストリームG2。Stream.generate =(() - > Math.random())限界(10 )。
// 4、Stream.iterate反復を通る流れを作成するために、上記の流れは、この差は、関数が第二パラメータは最初のパラメータを計算に基づいており、最初のパラメータが基準値である、2つのパラメータを有することで、無制限です機能。以下のように自然数のシーケンスを生成する
反復は、本明細書、動作パラメータの第2の反復であろう//
ストリーム限界= Stream.iterate(0、N - > N +1).limit(10)。
// 5、Stream.empty()空のフローを作成し
// 。6、Stream.concat(ARG1、ARG2)一つのストリームに二つの流れ