プログラミングの配列って?配列の使い方や注意点
  • facebookページ
  • twitterページ
  • 2017.11.21

    プログラミングの配列って?配列の使い方や注意点

    プログラミングを学ぶにあたり、配列は避けることの出来ない重要な概念の1つです。小学校から学んだ算数を理解していないと中学・高校で学ぶ数学を理解できないように、配列もプログラミングを行うためには理解必須なものとなっています。

    プログラミングにおける「配列」とは

    配列は、ほぼ全てのプログラミング言語に実装されている基本的なデータ型の1つです。
    複数存在する同じ種類・型のデータをまとめて管理したい時に使います。配列で管理される個々のデータにアクセスするには、自然数で表現される”添え字(インデックス)”というものを使用します。

    これからプログラミングを学ぶ方にとっては、なかなかイメージしにくいかと思いますが実生活シーンで例えてみると、たとえば混んでいるレストランに行った時に書く順番待ちの紙などがイメージしやすいでしょうか。このように各要素(この場合は、名前)に”順番”となる添え字を与えることによって、複数のデータ(名前)を管理するイメージと似ています。

    配列を使うときの注意点

    プログラミング言語によって配列の仕様が若干違う場合がありますが、起こしがちな注意点があります。それは、『配列の添え字は自然数が”0から始まることが多い”』ということです。ここは、初心者、経験者問わず、良く間違える落とし穴でもあるのですが、日常生活で物を数える時に”1つ目の・・”の様に1から考えることに慣れてしまっているために起こしやすいことが原因です。配列を使用する時は、そのプログラミング言語の配列の仕様として、インデックスの扱いを確認することを行いましょう。

    配列の使い方

    上述したレストランの順番名簿を配列にしてみます。
    言語によってコードの書き方は違いますが、今回はswift3を用います。

    データの初期化

    レストランに入ると満員状態。レストラン側は、お客さんを順番に通すために、順番待ち用紙を入り口に置いています。これを配列にしてみます。この用紙には、自分の名前を書くので、要素の型は、String型になります。

    var list: [String] = [“A様”, “B様"]

    配列の名前(順番待ち用紙)をlistとしています。右辺で初期化しています。既に2組が待っている状態で初期化されている意味となります。

    データの追加

    レストランに入ると2組既に待っているので、自分の名前を順番待ち用紙に入れます。

    list[2] = “自分の名前”

    添え字が2となっているところに注意してください。配列の添え字(順番を表すインデックス値)は0から開始されます。つまり、各要素と添え字の関係は、

    list[0] => A様
    list[1] => B様

    となっているので、次の添え字としては2となります。
    上の例では”自分の名前”を登録する時に、直接2というインデックス数字を指定しましたが、実際プログラミングをする時には、appendメソッドというものを使用することが多いです。appendメソッドは配列の一番最後に要素を追加してくれるメソッドとして多くのプログラミング言語で使用できます。
    理由としては、要素追加時に配列が要素を幾つ持っているかを、毎回調べる必要がなくなるためです。

    データの更新

    1つ席が空いたのでA様がレストラン内に通されました。同時にlistの内容を更新します。更新内容としては、次に呼ばれる予定の”B様”をlist[0]に。そして”自分の名前”をlist[1]に繰り上げることになります。

    list[0] = “B様”
    list[1] = “自分の名前”

    このままではlist[2]に、まだ”自分の名前”が入っているので、

    list[2] = “”

    として空の要素を入れて削除します。

    ただ、要素を追加した時にappnedメソッドというのを紹介したように、
    一番末尾の要素を削除するメソッドも用意されていますので、
    プログラミングコード自体の可読性を考慮し、こういうケース時は、なるべく削除メソッドを使用しましょう。

    list.removeLast()

    これで順番待ち用紙が更新されました!

    2次元配列(多次元配列)の使い方

    2次元配列というのは、配列の各要素が配列のものを言います。たとえば、ある学年(例|〇〇小学校1年)に3クラスあったとした場合の各クラスの名簿をイメージしてみます。

    var meibo: [[String]] = []
    meibo[0] = [“aくん”, “bくん”・・・・]
    meibo[1] = [“aaくん”, “bbくん”・・・・]
    meibo[2] = [“aaaくん”, “bbbくん”・・・・]

    このように名簿を初期化することが出来ます。この例ではmeibo配列の要素が1次元配列となっていますが、さらに2次元配列、3次元配列というように次元を上げて管理することも出来るので、データの扱い方や定義を考える時に、どのくらい次元をがあった方が、わかりやすく扱いやすいか?を考えることが大切です。

    まとめ

    配列の基本的な概念と使い方の例を挙げてみました。読んだだけでは、この便利さが分かりづらいかもしれませんが、実際プログラミングを行うと無くてはならない便利なものと認識できると思います。配列を使うことは、どのようにデータを定義するかというプログラミングのロジカルな部分で非常に重要な要素となってくるので、徐々に応用力を上げていきましょう!


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE