* MAP-は、ラムダを受信抽出情報または他の形式に変換素子。パラメータとして受信機能、関数は、各要素に適用され、新しい要素にそれをマップします。
* FlatMap-パラメータとして受信機能、各ストリームの値を別のストリームに置き換えられ、その後、全て一つのストリームに接続されたフロー
一覧<従業員>従業員=は、Arrays.asList(// 新しい従業員(20、 "张三"、5000.35)、// 新しい従業員(40、 "李四"、6500.63)、// 新しい従業員(30、「王五」、4000.93)、// 新しい従業員(50、 "赵六"、9005.36)、// 新しい従業員(10、 "马七"、1050.93)、// 新しい従業員(10、 "马七"、1050.93)// 新しい従業員(10、 "马七"、1050.93)、// 新しい従業員(10、 "马七"、1050.93)、// 新しい従業員(20、 "朱八"、3000.73)// )。
図1に示すように、パラメータとして受信機能ラムダ、FlatMap-を受信MAP-
@Test 公共 ボイドTEST5(){ リストの<string> asList =は、Arrays.asList( "AAA"、 "BBB"、 "CCC"、 "DDD"、 "EEE"、 "FFF" )。 asList.stream()マップ((E)。 - > e.toUpperCase())はforEach(System.outに::のprintln)。 System.out.println( "====================" ); 。employees.stream()マップ(従業員::のgetName).forEach(System.outに::のprintln)。 System.out.println( "====================" ); ストリーム <ストリーム<文字>>マッピング= 。asList.stream()マップ(StreamApiTest2 :: filterCharacter)。 map.forEach((E) - > { e.forEach(のSystem.out ::のprintln)。 }); System.out.println( "====================" ); asList.stream()flatMap(StreamApiTest2 :: filterCharacter).forEach(System.outに::のprintln)。 } プライベート 静的ストリーム<文字> filterCharacter(文字列str){ 一覧 <文字>リスト= 新しいのArrayList <文字> (); CHAR [] charArray = str.toCharArray()。 用(チャーC:charArray){ list.add(C); } リターンlist.stream(); }
2、ソート()ソート - 自然な順序が(コンパレータCOM)カスタムソートをソート
@Test 公共 ボイドTEST6(){ リストの<string> asList =は、Arrays.asList( "AAA"、 "BBB"、 "CCC"、 "DDD"、 "EEE"、 "FFF" )。 asList.stream()ソート()のforEach(System.outに::のprintln)。。。 System.out.println( "====================" ); 。employees.stream()ソート((E1、E2) - > { 場合(e1.getAge()(e2.getAge())){等しい。 リターンe1.getName()のcompareTo(e2.getName())。 } 他{ リターン - e1.getAge()のcompareTo(e2.getAge())。 } })のforEach(のSystem.out ::のprintln)。 }