ただ、ブログを書き始め、ありがとう指導の多くは、兄のフォーラムを喜ばない場所もありません!
- forEachの()メソッド
cn.com.cqucc.demo02.StreamMethods.Test02.StreamMethodsパッケージ; java.util.ArrayListののインポート、 インポートはjava.util.List; インポートjava.util.stream.Stream; / * *練習のforEachのメソッド void *型のforEachを(消費者<?スーパーT>操作のアクションを実行する)このストリームの各要素について。 *パラメータ: *消費者は、関数インタフェースで、機能への各ストリーム要素が処理するだろう。 *それはインターフェースが関数であるから、ラムダ式を使用することが可能で、消費者のインタフェースの関数です。 *役割: *データによる。 *注意: *これは、メソッドの最後で、その後、あなたはそれ以外の場合は、例外がスローされます、ストリームの流れに他の方法を使用することはできません。 * * / パブリッククラスTest01StreamForeach { パブリック静的無効メイン(文字列[] args){ 一覧<文字列>リスト=新しい新しいのArrayList <>(); list.add( "ジョー・スミス"); list.add( "ジョン・ドウ"); list.add( "王呉"); list.add( "趙6"); list.add( "Tianqi"); list.add( "ろくでなし"); / / 1は、最初のリストのストリームのストリームに変換され たストリームの<string>ストリームlist.stream =(); // 2、コレクションを介して流れますforeachの方法を用いて stream.forEach(S - > System.out.print(S + "" )); //出力:Zhangsanlisi王呉趙Tianqi 6人の野郎 あなたがこれを使用している場合// 3、ストリームが起こるのだろうか? stream.filter(S - > s.startsWith( "張")); //これは、例外がスローされます:java.lang.IllegalStateException:ストリームがすでに時に操作またはクローズされています } }
- フィルタ()メソッド
cn.com.cqucc.demo02.StreamMethods.Test02.StreamMethodsパッケージ; インポートjava.util.stream.Stream; / * 使用*フィルタをストリーム()メソッド *ストリーム<T>フィルタ(述語述語<スーパーT?> この流れの組成と一致する所定の述語の要素から)、この逆流。 *パラメータ: *プロセスパラメータを受信する機能インタフェース、それはラムダ式を使用することが可能である *機能:フィルタエレメント * *ストリームの流れ特性: 1、流れ導管に属するが消費することができる(使用)時間 2最初のストリーム・フロー・メソッドの呼び出しが完了したデータは、この時点で次のストリームストリームの流れにに流れます最初に使用されていたクローズされます 。この時最初のストリームの流れでのクラスのために呼び出すことはできません 私たちのストリームのみ流れ、一度使用することができる * / publicクラスTest02StreamFilter { {公共の静的な無効メイン(文字列[]引数) //ストリームを作成します ストリーム<文字列> streamA = Stream.of( 「 ジョー・スミス」、「ジョン・ドウ」、「王5」、「趙6」、「Tianqi」、「ろくでなし」); //私は名字が必要で、「チャン」そうストリームフロー濾過法、フィルター呼び出し streamA.filter(S - > s.startsWith( "張"))のforEach(S - >のSystem.out.println(S)); // 出力:張 @なお、 ストリーム<文字列> streamB = Stream.of( " ボブ"、 "華"、 "王"); ストリーム<文字列> streamC streamB.filter =(S - > s.startswith( "リー")); / / streamB.forEach(S->のSystem.out.println(S )); // 例外IllegalStateExceptionがスローされますストリームを使用する前にこの時間 streamC.forEachを(S - >のSystem.out.println(S)); / /出力:華 } }
- マップ()メソッド
cn.com.cqucc.demo02.StreamMethods.Test02.StreamMethodsパッケージ; インポートjava.util.stream.Stream; / * * <R&LT>ストリーム<R&LT>地図(ファンクションマッパー<R&LTスーパーT、拡張??>)を返します結果から所定の関数は、ストリームからなるこのストリームの要素に適用されます。 *パラメータ: *機能インタフェース機能、伝達関数Tは、タイプRのためのデータ・ストリーム型のタイプであってもよい *マッピングと呼ばれる別のタイプの、1つのタイプを変換することができます。 *役割: *マップのマッピング:あなたは別のストリームにストリームに要素をマップする必要がある場合は、この方法は、マップを使用します * * / publicクラスTest03StreamMap { 公共の静的な無効メイン(文字列[] args){ 文字列://要件を整数整数整数型の種類に ストリームの<string>にstringstream = Stream.of(、 "2"、 "1" " 1" 」3" 。); ストリーム<整数> integerStream.forEach(S - >のSystem.out.println(S))。 } }
- 数()メソッド
cn.com.cqucc.demo02.StreamMethods.Test02.StreamMethodsパッケージ; java.util.ArrayListののインポート、 インポートはjava.util.List; インポートjava.util.stream.Stream; / * *メソッドストリーム(長い数をストリーム)このストリーム内の要素の数を返します。 * *機能: 要素数の*ストリームフロー統計 *注: * COUNTは、それがストリームのストリームで使用される他の方法を使用して終了方法終了することができない * * * / パブリッククラスTest04StreamCount { 公共の静的メインボイド(文字列[]引数){ リストの<string> =新しい新規リストのArrayList <>(); List.add( "ジョン・ドウ"); List.add( "ジョン・ドウ"); List.add( "王呉" ); list.add( "趙6"); リスト。 list.add( "ろくでなし"); ストリーム<文字列> streamList = list.stream(); //ロングCOUNT = streamList.count(); ロングCOUNT = streamList.count(); //はもはやコールの後に呼び出します流れの他の方法 のSystem.out.println(COUNT); // 6。 } }
- 限界()メソッド
cn.com.cqucc.demo02.StreamMethods.Test02.StreamMethodsパッケージ; java.util.ArrayListの輸入、 インポートjava.util.Listに、 インポートjava.util.stream.Stream; / * *ストリームメソッドストリーム<T>限界(長いmaxSizeの)がそれによって素子フローストリーム組成を返し、切り捨てられた長さが、MAXSIZEを超えることができません。 *パラメータ: *パラメータよりも大きい長さがデータの長いタイプがセットである場合傍受さもなければ何もしないである :*効果 *限界方法は要素が取り得る対流のみ取る最初のn * / publicクラス{Test06StreamLimit のpublic static無効メイン(文字列[] args){ //ストリームstream取得 一覧を<文字列> =新しい新しいリストのArrayList <>(); List.add( "ジョン・ドウ"); List.add( "ジョン・ドウ" ); リスト。 list.add(「趙6」); list.add(「Tianqi」); ストリームのストリームlist.stream = <文字列>(); //方法であれば最初の二つとして、制限ストリーム流遮断要素を使用して要素および横断フロー stream.limitを(2).forEach(S->のSystem.out.println(S)); } }
- ()メソッドをスキップ
cn.com.cqucc.demo02.StreamMethods.Test02.StreamMethodsパッケージ; java.util.ArrayListののインポート、 インポートはjava.util.List; インポートjava.util.stream.Stream; / * *ストリームのメソッドストリーム<T>スキップ廃棄されたn個の要素の第一の流れの後に(ロングn)は、リターンの残りの要素は、その流れから流れます。 *パラメータ: *データのロングタイプです *機能: *あなたが取得ストリームの最初のn個の要素をスキップしたい場合は、ストリーム使っskipメソッド後に撮影された ストリームの現在の長さがnよりも大きい場合、nはスキップまたはEX-されている場合*を長さゼロのストリームです。 * / パブリッククラスTest06StreamSkip { パブリック静的無効メイン(文字列[] args){ リストの<string> =新しい新規リストのArrayList <>(); List.add( "ジョン・ドウ"); List.add( "ZHAOのSi") ; list.add( "5の王"); list.add( "趙6"); list.add( "Tianqi"); list.add( "ろくでなし"); ストリームの<string>ストリームlist.stream =(); stream.skip .forEach((3)。 S - > System.out.print(S + " 「)); // 出力:趙6疑似人参やつ } }
- concatメソッド
cn.com.cqucc.demo02.StreamMethods.Test02.StreamMethodsパッケージ; java.util.ArrayListの輸入、 インポートjava.util.Listに、 インポートjava.util.stream.Stream; / * *ストリームインタフェース静的<T>ストリーム<T> CONCAT(ストリーム<?延びT> A、ストリーム<?延びT> B) *レイジーストリーム接続、その要素が全ての第2のエレメンタリストリームに続く最初のエレメンタリストリームである全てのを作成します。 *パラメータ: *二つの流れ *役割: あなたは2つのストリームを持っている場合*、あなたは、あなたは、静的メソッドストリームフロー連結を使用することができ、一つのストリームにマージしたい * * / パブリッククラスTest07StreamConcat { 公共の静的な無効メイン(文字列[]引数){ リストの<string> =新しい新しいリスタのArrayList <>(); listA.add( "ジョン・ドウ"); listA.add( "ジョン・ドウ"); リスタ。 listA.add( "趙6"); listA.add( "Tianqi"); listA.add( "ろくでなし"); リスト<文字列> =新しい新しいListBのArrayListを<>(); listB.add( "ボブ") ; listB.add( "張強"); listB.add( "華"); ストリームstreamA = listA.streamの<string>(); ストリームstreamB = listB.streamの<string>(); ストリームの<string> = concatAB Stream.concat(streamA、streamB); concatAB.forEach(S - > System.out.printの(S + "")); // Zhangsanlisi 6つのTianQi趙ワング・ウ強ホア暁のやつ } }
オリジナルます。https://blog.csdn.net/qq_41319058/article/details/90321251