取得ストリーム
java.util.stream。ストリーム <T>は、新たに追加されたインターフェースで最も一般的なJava 8のストリームです。(これは、関数のインタフェースではありません。)
非常にシンプルなのストリームを取得し、いくつかの一般的な方法があります。
-
すべてのコレクションのコレクションはを通じて利用可能な取得ストリームストリームのデフォルトの方法。
-
静的メソッドインタフェースストリームストリームの配列の取得することができます。
フローコレクションを取得するためによると
まず、のjava.util.Collectionインタフェースデフォルトメソッド追加ので、すべてのクラスは、取得ストリームを実現することができる、ストリームを得るためにストリームを。
輸入 java.utilの。* ; 輸入java.util.stream.Stream; パブリック クラスDemo03Stream { 公共 静的 ボイドメイン(文字列[]引数){ リストの<string>リスト= 新規のArrayList <> (); // ... ストリーム<文字列>ストリーム1 = list.stream(); セット <文字列>セット= 新しい HashSetの<> (); // ... ストリーム<文字列>ストリーム2 = set.stream(); ベクター <ストリング>ベクトル= 新しいベクトル<> (); // ... ストリーム<文字列> stream3 = vector.stream(); } }
インタフェースコレクションを追加するデフォルトの方法 - 以下のようにストリーム方式、そのソースコードは次のとおりです。
デフォルトストリーム<E> ストリーム(){ リターン StreamSupport.stream(spliterator()、偽)。 }
フローマップを取得するためによると
インタフェースjava.util.Mapないコレクションサブインターフェース、データ構造及びKV単一の特徴ストリーム要素を準拠していない、対応するフロー得るように必要な分数キー、値、またはエントリ等:
輸入java.util.HashMapを; 輸入java.util.Map; 輸入java.util.Set; 輸入java.util.stream.Stream; パブリック クラスDemo04Stream { 公共 静的 ボイドメイン(文字列[]引数){ 地図 <文字列、文字列>マップ= 新しい HashMapの<> (); // ... 設定<文字列>キー= map.keySet(); セットの<string>値=(セットの<string> )map.values(); セット <のMap.Entry <文字列、文字列>>エントリー= map.entrySet(); ストリーム <文字列>キーストリーム=key.stream(); ストリーム valueStream = <文字列> value.stream(); ストリーム <のMap.Entry <文字列、文字列>> entryStream = entries.stream()。 } }
インターフェイスではなく、特別なマップ、それはデータを保存したキーである - ので、キー、値およびキー値の状況、ケースであるキーと値のエントリのケースに分けて、値。各コレクションは、セットに格納され、Collectionインタフェースから継承されたセットのインターフェイスは、その流れを取得するには、ここではデフォルトのストリームCollectionインタフェースを使用しての間接的な方法があります。
ストリームの配列を取得するに従って
マップが原因デフォルトのメソッドを追加することはできません配列オブジェクトへのコレクションまたはアレイの使用はなく、ない場合には、ストリームインターフェイスは、静的メソッドを提供 使用することは非常にシンプルなのを:
輸入java.util.stream.Stream; パブリック クラスDemo05GetStream { 公共 静的 ボイドメイン(文字列[]引数){ 文字[]配列 = { "ジャワ"、 "C"、 "パイソン"、 "Hadoopの"、 "スパーク" }。 ストリームの<string>ストリーム= Stream.of(アレイ) } }
注:パラメトリックの方法は、実際には可変パラメータであるので、支持アレイ。