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

配列の平坦化(flatten)

このレッスンでは、Objective-Cで入れ子になった配列を平坦化(flatten)する方法を学び、複雑なデータ構造をシンプルに扱う方法を理解することを目標にします。「Objective-C 配列 flatten 実装」で調べている方向けです。

配列の中に入れ子になった配列があるとき、それを「平らな」1つの配列に展開することをflatten(平坦化)と呼びます。Objective-Cには専用のメソッドがないため、for文とaddObjectsFromArray:を組み合わせて実装します。

サンプルコードでは、for (NSArray *sub in nested)で入れ子の各配列を取り出し、[flat addObjectsFromArray:sub]で1つの配列にまとめて追加しています。1つのメソッドで配列全体をまとめて追加できる便利さに注目してみましょう。

初心者がよくつまずくのが、addObject:addObjectsFromArray:の違いです。前者は1つの要素を追加、後者は配列の中身をまとめて追加するという違いを理解していないと、意図しない入れ子構造になってしまいます。

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

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

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

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