JavaのStream API入門:新人エンジニアのためのやさしい解説と活用術
こんにちは。ゆうせいです。
今回は、新人エンジニア向けにJavaのStream APIを丁寧に解説します。
「なんか便利そうだけど、よくわからない…」そんな気持ち、よくわかります!
難しそうに見えるStreamも、ポイントを押さえればとても直感的。
高校生でも理解できるように、例え話や図も交えながら進めていきますね!
Stream APIとは?どんな場面で使うの?
Java 8から追加されたStream API(ストリームエーピーアイ)は、コレクション(ListやSetなど)に対して、簡潔で柔軟なデータ処理ができる仕組みです。
例えるなら…
工場のベルトコンベアのようなもの!
- 入ってきたデータに対して
- 並べ替えたり、フィルターしたり、合計したり
- 最後にまとめて結果を取り出す
という「流れ作業」ができます。
基本の書き方
List<String> names = Arrays.asList("Yusei", "Taro", "Hanako");
List<String> result = names.stream()
.filter(name -> name.length() > 4)
.collect(Collectors.toList());
分解してみよう
処理 | 意味 |
---|---|
.stream() | Streamを開始する |
.filter(...) | 条件でふるい分け(フィルター) |
.collect(...) | 結果をListなどの形にまとめる |
よく使う中間操作と終端操作
中間操作(途中でデータを変換)
メソッド | 説明 |
---|---|
filter(Predicate) | 条件に合う要素だけ残す |
map(Function) | 要素を変換する |
sorted() | 昇順に並び替え |
distinct() | 重複を取り除く |
limit(n) | 最初のn件だけ取得 |
skip(n) | 最初のn件を飛ばす |
終端操作(最終的にまとめる)
メソッド | 説明 |
---|---|
collect() | 結果をListなどにまとめる |
forEach() | 各要素に対して処理を実行 |
count() | 件数を数える |
anyMatch() | 条件に1つでも合えばtrue |
allMatch() | 全部が条件に合えばtrue |
noneMatch() | 1つも条件に合わなければtrue |
よくある例:数字のリストから偶数だけを取り出す
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evens = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
結果:
[2, 4, 6]
これは、「偶数だけ通すフィルターをベルトコンベアの途中に置いた」イメージですね。
mapを使って値を変換
List<String> names = Arrays.asList("taro", "hanako");
List<String> upper = names.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
結果:
["TARO", "HANAKO"]
mapは「加工機」みたいなもの。入力された要素を好きな形に変えられます。
forEachで繰り返し処理
names.stream().forEach(name -> System.out.println("こんにちは、" + name + "さん!"));
1行で全要素に挨拶できる。とてもスッキリ!
Streamのメリットとデメリット
メリット
- コードが簡潔になる
- 可読性が高い(慣れれば)
- 関数型プログラミング的な考え方に近づける
デメリット
- 慣れるまで取っつきにくい
- 複雑な処理だとデバッグしづらい
まとめ:Stream APIは「流れ」を意識すれば簡単!
段階 | イメージ | 例 |
---|---|---|
開始 | 入り口 | .stream() |
加工 | 中間操作 | .filter() , .map() |
取り出し | 終端操作 | .collect() , .forEach() |
今後の学習の道しるべ
filter()
やmap()
の使い分けに慣れるOptional
やflatMap
など応用的な操作もチェック!- 並列処理(
parallelStream()
)にも挑戦!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。