Java 8の二つの特性(一)——Stream
3737 ワード
Streamとは
Stream(ストリーム)は、データソースからの要素列であり、統合動作をサポートし、要素ストリームはパイプ内で中間動作を行い、最終的な動作は結果を得る。
データソース:集合、配列、I/Oチャンネル、ジェネレータ。
集約操作:sqlに類似しています。例えば、filter、find、map、mach、sorted。
生成ストリーム: stream() −集合のためのシリアルストリームを作成します。 parallel Stream() −集合のための並列ストリームを作成する。 例を通して方法を見ます。
基本タイプに変換します。統計タイプに変換します。様々な結果を出力します。
Stream(ストリーム)は、データソースからの要素列であり、統合動作をサポートし、要素ストリームはパイプ内で中間動作を行い、最終的な動作は結果を得る。
データソース:集合、配列、I/Oチャンネル、ジェネレータ。
集約操作:sqlに類似しています。例えば、filter、find、map、mach、sorted。
生成ストリーム:
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などの基本的なタイプに用います。基本タイプに変換します。統計タイプに変換します。様々な結果を出力します。