StreamAPIについて

StreamAPIとは

コレクション(ex. List, ArrayList)を操作するためのAPI
・データの抽出・加工・集計などができる。
・stream内には基本的にデータは書かない。
・元のコレクションは変更せずに使える。




StreamAPIの基本の流れ

StreamAPIには、Stream生成中間操作終端操作の三段階の流れがある。




Stream生成

データをStreamに変換する。


CollectionをStreamに変換

List<String> lists = Arrays.asList("hoge", "fuga", "bar");
Stream<String> stream = lists.stream();




中間操作

Streamのデータを加工してStreamで返す。
この過程はなくてもいいし、複数回実行もできる。


map
変換

Stream<String>からStream<Emp>に変換

Stream<Emp> nameStream = filteredStream.map(string -> string.getName());




終端操作

Streamのデータを別のクラスに変換する。
1回のみ実行可能。


collect
Streamを任意のコレクションに集約

List<String> result = nameStream.collect(Collectors.toList());