データを簡潔に処理!Javaの「Stream API」とは?
Java 8 から追加された Stream API は、リストや配列などの集合データに対して、
繰り返し・絞り込み・変換・集計といった処理を簡潔に記述できる仕組みです。
Streamの基本イメージ
Streamは「データの流れ」を作って、パイプラインのように処理をつなげることができます。
コレクション.stream()
.中間操作1()
.中間操作2()
.終端操作();
主な操作の種類
- 中間操作:filter(絞り込み)、map(変換)、sorted(並べ替え)など
- 終端操作:forEach(表示)、collect(リストに変換)、count(件数)など
よく使うStream操作の例
例1:名前リストを全て表示
List names = Arrays.asList("Taro", "Hanako", "Jiro");
names.stream()
.forEach(name -> System.out.println(name));
例2:「a」を含む名前だけを抽出
names.stream()
.filter(name -> name.contains("a"))
.forEach(System.out::println);
例3:すべて大文字に変換
names.stream()
.map(name -> name.toUpperCase())
.forEach(System.out::println);
例4:ソートして表示
names.stream()
.sorted()
.forEach(System.out::println);
例5:5より大きい数の合計
List numbers = Arrays.asList(3, 7, 1, 8, 2);
int sum = numbers.stream()
.filter(n -> n > 5)
.mapToInt(n -> n)
.sum();
System.out.println(sum); // 出力: 15
collectでListやSetに変換
List result = names.stream()
.filter(name -> name.length() <= 4)
.collect(Collectors.toList());
Streamのメリット
- 処理の流れが読みやすくなる
- for文を書かずにデータ操作できる
- 並列処理(parallelStream)も簡単に対応
まとめ
Stream APIは、Javaでデータ処理を簡潔・直感的に記述できる機能です。
stream()
を使えば、フィルタ・変換・集計・出力まで一連の流れで処理できます。
最初は filter
や map
、collect
あたりから慣れていくのがおすすめです!