免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
定義ストリーム
- 高分子は、順次および並列動作要素シーケンスをサポートしています
- これは、アレイ、およびからのファイルのセットで変換することができます
- ストリームは、消費後に完了し、かつ同じ水を望んでいません。
- 「ソース」のストリームを生成する動作の流れ中に変化しません
「ジェスチャー」のストリームを生成します
- ストリームの配列を生成します
Integer[] arr = {1, 2, 3, 4, 6};//这里可以开成int[] 试试看看结果。。。①
Stream.of(arr)//生成流Stream<Integer>
.forEach(System.out::println);//打印流中的每个元素
- セット(リスト)、ストリーム収集インターフェース方法を変更、追加されたストリームを生成する、インターフェイスのすべての実装を生成することができるストリーム
Arrays.asList(1, 2, 3, 4)//返回list集合
.stream()//转换为Stream<Integer>
.forEach(System.out::println);
- ファイル生成フローを読みます
Files.lines(Paths.get("E:\\temp\\test.txt"))
.forEach(System.out::println);
-
ストリームの流れが無限発生に至る、Streamクラスは、無限のストリームを生成するために2つの静的メソッドを持っています
- メソッドシグネチャ:パブリック静的ストリームは(サプライヤーs)を生成し、サプライヤーは、機能インタフェース、生産ストリームの主要素の役割であります
Stream.generate(() -> 1)
.limit(5)//
.forEach(System.out::println);
- メソッドシグネチャ:パブリック静的ストリーム反復(最終T種子、最終UnaryOperatorのf)は、種子は、UnaryOperatorパラメータが動作パラメータに渡された初期値と同一の戻り型であります
Stream.iterate(5, i -> i + 1)//生成无线流
.limit(5)//使用limit 截断流 这里取前5个,类比sql 的limit
.forEach(System.out::println);
上記二つの方法は、限られた流れを生成するために、次の二つの用語を無限ストリームを生成しています
- LongStream IntStream範囲()とrangeClosed()メソッドは、2つの方法が同じパラメータである:開始と終了値、またはタイプがlong int型であり、これらの2つの方法の違いは次のとおり方法の終わりを含まない範囲値、終了値を含むrangeClosed。
@Test
public void streamRanged() {
IntStream.range(1, 2)
.forEach(System.out::println);
}
結果:
1
@Test
public void streamRangeClosed() {
IntStream.rangeClosed(1, 2)
.forEach(System.out::println);
}
結果:
1
2
私たちは、批判訂正歓迎
コードアドレスを