支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • 【Java】配列と初期化を分かりやす

はじめに

プログラムが大きくなると、扱う変数の数がどんどん増えていきます。そうすると沢山の変数を合計したり同じような計算をしたりと、その都度コードを追加しなければならないという不便さが出てくるでしょう。そんな時に変数をまとめて処理できるのが「配列」です。「配列」とは一体何なのか。
現在Javaを学習している人やJavaに興味がある人に向けて、今回は「配列」と「配列の初期化」について分かりやすく簡単に解説します。

配列とは

同一種類の変数を複数まとめた集合体のことを配列(array)といいます。また、一つ一つの変数のことを要素(element)と呼びます。要素は通常の変数のように型を持ち、1つのデータを格納できます。また、配列に含まれる各要素の方はそろえる必要があり、ある要素の型がint型ならば、その他の要素の方もint型でなければないけません。また、ある一定のルールに従ってデータを格納する形式をデータ構造(date structure)といいます。「マップ」や「スタック」と呼ばれるデータ構造がありますが、その代表的なものが「配列」です。

配列の生成

配列を生成するにはこのように記述をします。「 型名[] 」の部分を配列宣言といい、例えば、int[]と書くとint型の要素を扱う配列であることを表します。

型名[]配列名=new 型名[要素数];

一つ一つの要素にはインデックス(添え字)と呼ばれる番号が付与されており、0から順に番号が振られています。1から始まるわけではないので注意が必要です。例えば、要素が5つある配列の場合、先頭から順に0番の要素、1番の要素、2番の要素、3番の要素、4番の要素と表現されます。この時、5番という添え字の要素はありません。

配列の添え字は0から始まり、最後の添え字は要素数より1小さいということを覚えておいてください。 また、「new」はnew演算子と呼ばれるもので、指定された方の要素を[]内に指定された要素数だけ作成します。作成された要素は、代入演算子(=)で配列変数に代入することができます。

配列1

 ↓「配列変数の宣言」と「要素の作成と代入」を同時に行った場合がこちら

配列2

配列の利用方法

配列に含まれるそれぞれの要素は、変数と同じように扱えますが、どの要素に値を出し入れするかを指定するため「array[1]=10;」のように添え字を用いて利用します。ここで配列において最初の要素は0番であるというルールを思い出してください。「array[1]=10;」は、配列の1番目ではなく、先頭から2番目の要素に10を代入していることになります。

配列の初期化

変数の値を取り出す前には、必ず値を代入して初期化する必要があります。初期化をせずに変数を利用するとコンパイルエラーが発生します。しかし、配列の要素は自動的に初期化されるので、コンパイルエラーにはなりません。例えば、次のようにint型の要素を持つ配列を用意した場合、5つの要素はすべて0で初期化されます。

配列3

要素がどのような値で初期化されるのかは、要素の型によって決められています。

intやdoubleなどの数値の値…0

boolean型…false

String型…null

省略記法

配列の作成と初期値の代入までをまとめて行う方法もあります。

①要素の型[] 配列変数名=new 要素の型[]{値1,値2,値3,…};

例)int[] array1 = new int[]{10,20,30,40,50};

②要素の型[] 配列変数名={値1,値2,値3,…};

例)int[] array1 = {10,20,30,40,50};

配列と例外

範囲外の要素を利用しようとするとエラーが起こります。例えば、配列arrayの要素数が5つだとすると、要素の添え字は[0]~[4]となりますが、array[5]を使ってしますとエラーが発生します。存在しない要素をコード内で使っていてもコンパイルは成功しますが、プログラムを動かすと、その行を処理しようとした際に「ArrayIndexOutOfBoundsException」というエラーメッセージが表示されプログラムが中断します。 Arrayは「配列」、Indexは「添え字」、OutOfBoundsは「範囲外」という意味を覚えていると理解しやすいでしょう。英語が表示されたからといって、慌てずにしっかりと読んでみることがプログラミング上達の近道といえます。

さいごに

今回は、Javaの「配列」と「配列の初期化」について簡単に解説いたしましたが、いかがでしたでしょうか。配列を利用することで、変数をまとめて便利に扱うことができるのでしっかりと理解を深めて、マスターしてください。また、for文を用いることでよりスマートな記述が可能になります。興味がある人はfor文についてや、その他にJavaScriptの「配列」と「配列の初期化」についても、興味があればぜひ調べて比べてみてください。最後までお読みいただきありがとうございました。