基礎から学ぼう!Java言語の配列について
  • facebookページ
  • twitterページ
  • 2017.09.09

    基礎から学ぼう!Java言語の配列について

    配列とは何か

    Java言語で大量のデータを扱う方法は複数用意されていますが、中でも一番容易な方法は、配列と呼ばれる概念を利用することです。配列とは、データをアパートやマンションのような集合住宅のように一まとめにして扱う方法です。これにより、大量のデータを簡単に扱うことが出来るのです。

    なぜ配列が必要なのか

    配列について説明する前に、その基礎となる変数の概念について説明しましょう。

    Java言語に限らず、ほぼ全てのプログラミング言語には、数値、文字列などといった様々なデータを保持するために、変数(へんすう)と言う仕組みを持っています。変数とはどのようなものかと言うと、箱のようなものを連想してもらえば良いでしょう。

    変数は複数定義でき、名前をつけて区別します。この名前のことを変数名と言います。

    変数名には、英数字および、_といった記号を混ぜて任意につけることができます。例えば、a,b,といったアルファベット一時のものもあれば、data、main_number、num01といったように、英単語や数字・記号の組み合わせで名前をつけることも可能です。

    ただし、予約語といって、あらかじめJava言語で既定された別の意味を持つ単語を変数名として使うことは出来ません。

    また、この変数を使えるようにすることを宣言と言い、そこに何らかのデータを入れることを代入(だいにゅう)といいます。例えば、整数を入れる変数aを宣言するには、

    といったような書き方をします。ここに値を代入するには、

    のようにします。

    変数と演算

    次に、2つの数値の足し算の計算をするプログラムを作るとします。その時、2つの足す数である、変数num1,num2,と、その計算結果resultという3つの変数があったとします。このときの処理はいかのようになります。

    こうすると、resultと言う変数に「1+2」の答えである「3」という値が代入されます。

    このプログラムは、扱う数が2つですから、非常に単純です。しかし、この数が、3つ、4つ、更には100個、といったように増えると大変です。

    その場合、大量のデータを扱うために、配列変数が役に立つのです。

    Javaの配列の考え方

    では、具体的に配列とはどのようなものなのでしょうか。配列変数も、変数の一種なので、最初は宣言が必要です。例えば、整数で配列変数を宣言しようとすると、以下のようになります。

    int array[] = new int[4];

    配列のイメージ

    これにより、array[0]、array[1]、array[2]、array[3]という整数型の4つの変数が出来上がるわけです。例えばこのとき

    とすると、array[1]に5と言う値が代入されます。

    宣言の変数名の後に[]がありますが、これは、arrayという変数が配列変数であるということを意味しています。arrayはあくまでも配列の名前であり、具体的な値ではありません。

    「=」の次に出てくる、「new int」というのは、整数(int)型の配列を新たに生成するということを意味します。

    次の[]内に書かれている4という値を10にすれば10個の、100にすれば、100個の変数が出来上がります。
    ただし、気をつけなくてはならないのは、配列変数は、最初の宣言時に決めた大きさを途中で帰ることは出来ないという点です。

    なお、配列変数では、その長さを取得する、lengthという属性を持っています。たとえば、ここで例に挙げたarrayと言う変数の場合、array.lengthの値は4になりますこれを利用して、for文などと組みあわせて、配列変数のデータを気軽に代入・取得することが出来ます。

    例えば、

    とすると、array[0]=1、array[1]=2、array[2]=3、array[3]=4となります。このように、配列はfor文などのような繰り返し処理と組み合わせて用いられることが多いのです。

    配列とメモリ

    配列のデータは、メモリ上の領域に連続的に確保されます。前述のarrayという配列で言えば、array[0]からarray[3]までは、メモリ上に連続的に配置されています。

    配列変数についている番号のことを、添え字(そえじ)、もしくはインデックスなどと呼びます。

    冒頭で配列の考え方を集合住宅に例えましたが、配列の変数名が建物名であるのならば、この添え字は、部屋番号といったところでしょう。「○○マンション××号室」といったような感じで、「arrayの1番目の値」といったような考え方になるわけです。

    なお、添え字は必ず0から始まるというルールがあります。したがって、配列の大きさがnだとすると、添え字は0からn-1まで、ということになります。

    多次元配列

    さて、今まで説明してきた配列変数は、一次元配列といい、直線的にデータを格納している配列変数です。

    これは最も基本的なデータの格納方法で、さらに2次元的、3次元的にデータを扱うことが出来る、多次元配列(たじげんはいれつ)という配列も存在します。

    例えば、

    とすると、3×4の二次元の格子状の平面としてデータを扱うことが出来ます。

    多次元配列(二次元配列)

    一次元の配列が平屋の長屋のようなものであるとすると、多次元配列はさながら高層住宅のようなものといっていいでしょう。

    といったようにすると、上から2番目、左から3番目の変数に値を代入することになります。

    二次元配列の使い道としては、数学の行列のようなデータや、ロールプレイングゲームのマップ、二次元画像の画素データ、などといったようなものが上げられます。

    なお、この添え字の数を3,4つ、増やすことも出来ます。3つなら三次元、4つなら四次元配列、ということになりますが、総称して多次元配列と言います。

    変わった多次元配列

    このほかにも、配列変数には、変わったものとして、「ジャグ配列」と呼ばれるものが存在します。これも、多次元配列の一種なのですが、二次元配列の場合、たてとよこの長さがばらばら、というような配列です。

    ジャグ配列

    例えば、カレンダー形式の予定表を配列変数で表すとします。このとき、一つ目の添え字を月、二つ目の添え字を日付とすると、つきにより、配列の長さが、29~31のように異なる時に用いると大変便利です。

    ただし、ジャグ配列という言葉は、同様の概念を扱うことが出来るC#言語の用語で、厳密に言うとJavaの用語ではありません。しかし、Java言語でもほぼ同じことをすることが出来ます。

    配列の長所と短所

    以上のように、配列はJava言語である程度実用的な処理をする際には避けては通れない概念です。ただし、説明したとおり、途中で大きさを変えられないといったような制限もあります。

    そのような場合は、動的配列などのほかの概念を利用する必要がありますが、取り扱いやすさや処理の手軽さでは配列が一番です。


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

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

    ポテパンフリーランス

    ポテパンフリーランス

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

    ポテパンキャリア

    ポテパンキャリア

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

    ポテパンキャンプ

    ポテパンキャンプ

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



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

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

    この記事をシェア

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

    話題の記事

    まだデータがありません。

    関連ワード

    pickup









    ABOUT US

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

    READ MORE