1.ストリーム五つの方法のインスタンスを作成します。
@Test 公共 ボイドTEST1(){ // 最初の方法は、オブジェクトストリーム作成する リストの<string> Lists.newArrayList一覧=( "A"、 "B"、 "C" ;) ストリームの<string> STREAM1 = list.streamを(); // 第2の実施の形態のストリームオブジェクトの作成 文字列[] ARR = { "A"、 "B" ;} ストリームの<string> STREAM2 = Arrays.stream(ARR)を; // ストリームオブジェクト第三の作成実施例 ストリームの<string> STREAM3 Stream.of =( "A"、 "B" ); //は、第四の実施形態ストリームオブジェクトを作成 // のみリーディング5反復が無制限に実行するので、制限 ストリーム<整数>stream4 = Stream.iterate(0、X - > X * X).limit(5 )。 // ストリームオブジェクト第5の実施形態を作成 // 無制限に実行されます生成し、これだけリーディング5限定 ストリーム<ダブル> Stream5 = Stream.generate(数学::ランダム).limitを(5。); }
2.ストリーム一般アピ
@Test 公共 ボイドTEST2(){ リストの<string>リスト= Lists.newArrayList( "ABC"、 "BCD"、 "EFG"、 "A12"、 "BCD" )。 // 1.过滤 。list.stream()フィルタ(X - > x.contains( "B" ))のforEach(のSystem.out ::のprintln)。 // 2.取前N list.stream()リミット(1 ).forEach(のSystem.out ::のprintln)。 // 3.跳过前N个 list.stream()(2スキップ。).forEach(のSystem.out ::のprintlnを) // 4.異なる去の重の list.stream()別個の()のforEach(のSystem.out ::のprintln)。 // 5.マップ映射 。list.stream()マップ(X - > x.toUpperCase())。 System.out.println( "-----------------------" ); // 6. flatMapマップ(Scalaのマップにおいて、flatMap同じ) 、ストリームを返し list.stream()flatMap(X - 。> Stream.of(x.toUpperCase()))のforEach(System.outに::のprintln);. // 7.ソートソート()--->を自然順序付け リスト<整数> = Lists.newArrayListのList1(12 ,. 1、0、-1、2、56であるが、34である); .. list1.stream()ソート()のforEach(のSystem.out ::のprintln); // 8.ソートソート(比較器COM) - >ソートルールの指定 list1.stream()ソートを。((E1、E2) - > - 。Integer.compare(E1、E2))のforEach(System.outに::のprintln) ; // 9.一致検索 // リスト内のすべての要素は、「」が含まれてい ブールprintln(any.get())。// 最大値を取得します 。<整数> = maxのオプションの;. list1.stream()最大(のcompareTo ::整数) // 上記の行は、このコードの省略形です // 省略可能<整数> MAX1 = list1.stream()MAX(。 (E1、E2) - > Integer.compare(E1、E2)); のSystem.out.println(max.get()); // 10、還元 オプションの<整数> = list1.streamを(低減させる (減少させます)。 (X、Y) - > X + Y); // のList1加算要素 のSystem.out.println(reduce.get()); 整数SUM = list1.stream()を低減(0、整数:: SUM)。 ; // のList1加算要素 のSystem.out.println(SUM); 整数SUM2 = list1.stream()を低減(10、整数:: SUM);. //10 +加算要素LIST1 のSystem.out.println(SUM2); // 11コレクト- >ストリームがリストのセットに変わります 一覧<整数>集める= list1.stream( )マップ(X - > X * 2。 ).collect(Collectors.toList()); collect.forEach(のSystem.out ::のprintln); }