ストリームの流れ

collection.forEach与1.stream.forEach()()

そこに反復法があるが、結果は全く異なりますが。

以下のような:

リストの<string>技研=は、Arrays.asList( "AAA"、 "BB"、 "C"、 "WWWW"、 "HH")。

Stream.of(技研).forEach(System.outに::のprintln); --------------------------------- --------------------->① 
のSystem.out.println( "^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ");
strl.stream()はforEach(System.outに::のprintln)。---------------------------------- ---------------------->②
のSystem.out.println( "^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ");
strl.forEach(のSystem.out ::のprintln); -------------------------------------- --------------------------->③

出力:

[AAA、BB、C、HH、WWWW]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AAA
BB
C
HH
WWWW
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AAA
BB
C
HH
WWWW

②ラインを示唆するのアイデアは、第三行の形式を省略することができるが、しかし

①②forEachの()内のポイントのIterableインターフェースへのインターフェースと③のforEachで()点をストリーミングします。

ビューが見られます:

()メソッドの①は、ストリームストリームインターフェースの一個の要素で返さ

単一要素を含むシーケンシャル{@codeストリームが}返し。
②.Stream()メソッドでは、分割ストリームに分割した後に使用されるイテレータを返します
/ ** 
*そのソースとしてこのコレクションでシーケンシャル{@codeストリーム}を返します。
*
* <P> {@link #spliterator()}と、このメソッドをオーバーライドしなければならない
*メソッドは{@code IMMUTABLE}であるspliteratorを返すことができない
/ <<em>の遅延バインディング* {@codeのCONCURRENT}、又はem>の。({@link #spliterator()}を参照してください
詳細については、*。)
*
* @implSpec
*デフォルトの実装では、シーケンシャルから{@codeストリーム}作成
*コレクションの{@code Spliteratorを}。
*
*このコレクションの要素のシーケンシャル{@codeストリームを} @return
* 1.8 @since
* /


したがって、①及び②内部反復を得られた結果は同じではありません。

おすすめ

転載: www.cnblogs.com/wanghuanyeah/p/11780988.html