広告スペース(バナー)
Java レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 42 / 68

リストの平坦化(flatten)

このレッスンでは、JavaのStreamのflatMapを使って入れ子になったリストを平坦化する方法を学び、複雑なデータ構造をシンプルに扱う方法を理解することを目標にします。「Java flatMap flatten 使い方」で調べている方向けです。

リストの中に入れ子になったリストがあるとき、それを「平らな」1つのリストに展開することをflatten(平坦化)と呼びます。Streamの.flatMap()を使うと実現できます。

サンプルコードでは、nested.stream().flatMap(List::stream).collect(Collectors.toList())により、入れ子のリストを1つのリストに展開しています。List::streamというメソッド参照の書き方にも注目してみましょう。

初心者がよくつまずくのが、.map()との違いです。.map()だけではリストの中にリストが残ったままになりますが、.flatMap()を使うことで一段階平らにできる点を理解しておく必要があります。

実際の開発現場では、入れ子構造のデータをまとめて1つのリストとして扱いたいときに役立つ、実務でも使われるテクニックです。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではJavaを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
広告スペース(バナー)
広告スペース(記事内)