Java 8の二つの特性(一)——Stream

3737 ワード

Streamとは
Stream(ストリーム)は、データソースからの要素列であり、統合動作をサポートし、要素ストリームはパイプ内で中間動作を行い、最終的な動作は結果を得る。
データソース:集合、配列、I/Oチャンネル、ジェネレータ。
集約操作:sqlに類似しています。例えば、filter、find、map、mach、sorted。
生成ストリーム:
  • stream() −集合のためのシリアルストリームを作成します。
  • parallel Stream() −集合のための並列ストリームを作成する。
  • 例を通して方法を見ます。
    list.stream().limit(10).sorted().forEach(System.out::println);
    上記の例:トップ10条を取る。並べ替え」循環出力
    List numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
    List squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());
    上の例:自分を自分の二乗に写像して重さを取ります。
    Liststrings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
    String mergedString
    = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
    上の例:空の文字列をフィルタリングします。」「分割して統合します。
    List numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
    IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();
    System.out.println(" : " + stats.getMax());
    System.out.println(" : " + stats.getMin());
    System.out.println(" : " + stats.getSum());
    System.out.println(" : " + stats.getAverage());
    上の例:統計を利用して主にint、doubleなどの基本的なタイプに用います。
    基本タイプに変換します。統計タイプに変換します。様々な結果を出力します。