for / foreach / Stream の比較例
了では「同じ処理を for / foreach / Stream で書いた比較例」を並べてみます。
例題
リストの中の文字列をすべて大文字にして出力する。
1. 従来の for文
List<String> names = List.of("Alice", "Bob", "Charlie");
for (int i = 0; i < names.size(); i++) {
String upper = names.get(i).toUpperCase();
System.out.println(upper);
}
Java- 特徴: インデックスを使えるので柔軟。
- デメリット: インクリメントや境界条件を自分で管理する必要がある。
2. 拡張 for文(foreach)
for (String name : names) {
System.out.println(name.toUpperCase());
}
Java- 特徴: インデックス不要でシンプル。
- デメリット: インデックス番号が必要な場合には使えない。
3. Stream API
names.stream()
.map(String::toUpperCase)
.forEach(System.out::println);
Java- 特徴: 宣言的に「変換して出力」と書ける。
- デメリット: 初心者には少し読みにくい場合がある。
まとめ
| 方法 | メリット | デメリット | 実務での使いどころ |
|---|---|---|---|
| for文 | インデックスが使える、柔軟 | 境界条件やインクリメント管理が必要 | インデックスを使う処理、複雑な制御 |
| foreach | シンプル、安全、読みやすい | インデックスが使えない | 要素を順に処理するだけのとき |
| Stream | 宣言的でモダン、変換やフィルタに強い | 初心者には読みにくい、やや冗長 | 条件付き処理、データ変換、並列処理 |
💡 実務では「まず foreach、必要なら for、もっと複雑なら Stream」という順番で選ぶのが安全です。


