見出し画像

Streamについて

JavaのStream APIについて学習したことを記事にしていこうと思います。


Stream APIの概要

Streamは、データの集合に対する一連の計算を表現するためのシーケンスであり、要素をフィルタリング、変換、集約するための操作を効率的に行います。主な特徴として、遅延評価、無状態操作、ステートフル操作、並列処理が挙げられます。

Streamの生成方法

Streamは以下の方法で生成できます。

  • コレクションからの生成: Collection.stream()Collection.parallelStream()

  • 配列からの生成: Arrays.stream(T[] array)

  • 他の生成方法: Stream.of(), Stream.iterate(), Stream.generate(), Files.lines()

中間操作と終端操作

中間操作は新しいStreamを返し、終端操作は結果を返します。例として、filterは条件に合う要素をフィルタリングし、mapは各要素を関数に従って変換します。終端操作には、要素を収集するcollectや、要素を反復処理するforEachがあります。

結果変数 = 生成().中間操作1().中間操作2().中間操作3().終端操作();

Streamの利用例

List<Person> people = ...;
List<Person> filteredPeople = people.stream()
                                    .filter(p -> p.getAge() > 18)
                                    .collect(Collectors.toList());

並列Stream

並列Streamは、複数のスレッドを利用して並行処理を行うため、処理の高速化が期待できます。ただし、競合状態やデッドロックに注意が必要です。生成はparallelStream()メソッドで行います。

Stream APIの応用例

Stream APIは、複雑なデータ処理や大量のデータの効率的な処理に非常に役立ちます。例えば、大規模なログファイルの解析やWebからのデータ取得におけるフィルタリングと変換操作などです。

まとめ

Stream APIは、簡潔で効率的なデータ処理を可能にする強力なツールです。適切に使用することで、コードの可読性とメンテナンス性を大幅に向上させることができます。
今回は以上になります。最後まで閲覧いただきありがとうございます。

この記事が気に入ったらサポートをしてみませんか?