Javaに関する様々な情報をご紹介します。

1配列の基本

Javaに関する様々な情報をご紹介します。

配列の基本

配列とは同じ型のデータを複数もつことができるオブジェクトです。int、doubleなどの基本型だけでなくStringなど参照型のデータも持つことができます。配列は一度サイズを決めると、そのサイズを変更することはできません。

配列イメージ

配列の宣言・生成

配列を利用するためには、宣言・生成という手順をとる必要があります。
宣言を行い、配列情報を格納するための変数を定義します。
その後、生成を行う際に、配列のサイズを指定します。生成を行うと指定されたサイズに合わせたメモリ領域が、メモリ上に割り当てられます。

【配列の宣言】

配列型[ ] 配列名;

例1

int[] intArray;   //int型の配列intArrayを宣言
String[] stringArray;   //String型の配列stringArrayを宣言

【配列の生成】

配列の生成には、他のオブジェクトと同様にnew演算子を使用します。また、宣言と生成を同時に行うこともできます。

配列名 = new 配列型[サイズ];
配列型[] 配列名 = new 配列型[サイズ]; ※宣言と生成を同時に実施

例2

//10個のint型データを持つ配列intArrayを生成
intArray = new int[10];

//配列の宣言と生成を同時に実施
double[] doubleArray = new double[10];

生成を行うことによってメモリ上に配列データを格納するための領域が割り当てられます。メモリ上に領域が割り当てられる際、配列にはある初期値が設定されます。

int、double等の基本型の変数は利用する際、「int intVal;」と宣言しただけではコンパイルエラーになります。「int intVal = 100;」などと具体的に値を代入する必要があります。配列は、「int intArray[] = new int[10];」と宣言・生成した段階で、配列の各要素に予め初期値が設定されます(int型の配列の場合は、初期値として0が設定されています)。そのため、コンパイルエラーになりません。初期値は、配列の型により異なります。

例3

int intVal;
System.out.println(intVal);  //コンパイルエラーになります。

int intArray[] = new int[10];
System.out.println(intArray[0]);  //コンパイルエラーにはなりません。0が表示されます。
System.out.println(intArray[1]);  //コンパイルエラーにはなりません。0が表示されます。
System.out.println(intArray[2]);  //コンパイルエラーにはなりません。0が表示されます。

【配列の初期値】

配列型 初期値
int、double等の数値型 0
boolean型 false
参照型 null

初期化子

配列の宣言・生成を行う方法としてnew演算子を使用する代わりに、初期化子を指定する方法があります。初期化子は配列生成時に直接データを代入して配列を生成する方法です。初期化子を指定した場合の配列サイズは代入するデータの数によって決まります。

【初期化子による配列の宣言・生成】

配列型[ ] 配列名 = {データ, データ, ・・・};

例4

double[] doubleArray = {1.05d, 1.06d, 1.07d};
//double型の配列doubleArrayを宣言・生成

String[] stringArray = {"Sunday", "Monday", "Tuesday"};
//String型の配列stringArrayを宣言・生成

参照型配列の生成

参照型の配列を生成する際の注意点として配列生成後、配列の各要素のインスタンスの生成も忘れずに行います。

例えば、String型の配列としてstringArray[]を宣言・生成した場合、配列の各要素には初期値であるnullが設定されています。そのため、このまま利用するとNullPointerExceptionの例外が返されるため、「stringArray[0] = new String("Sunday");」という形で、インスタンスを生成する必要があります。

例5

String[] stringArray = new String[10];
System.out.println(stringArray[0].length());
//配列要素(stringArray[0])のインスタンスの生成を
//行っていないため、例外、NullPointerExceptinが返されます。

String[] stringArray = new String[10];
stringArray[0] = new String("Sunday"); //初期値”Sunday"を持つ、Stringクラスのインスタンスの生成
System.out.println(stringArray[0].length());
//配列要素(stringArray[0])のインスタンスの生成を
//行っているため、正しく実行されます。

String[] stringArray = {"Sunday", "Monday", "Tuesday"};
System.out.println(stringArray[0]);
//初期化子を指定した場合は配列の各要素のインスタンスの
//生成も同時に行われます。

値の代入・参照

配列はインデックス番号を使用して、配列の各要素の指定を行います。インデックス番号は0から始まり配列長-1までとなります。サイズ10の配列のインデックス番号は0~9になります。

配列の先頭行に値を代入する場合は、インデックス番号0を指定して値を代入します(例:intArray[0] = 10;)。配列の最終行に値を代入する場合は、インデックス番号9を指定して値を代入します(例:intArray[9] = 10;)。

配列の各要素への値の代入・参照

例6

//先頭行に値10の代入
intArray[0] = 10;

//最終行に値10の代入
intArray[9] = 10;

//先頭行の値の参照
System.out.println(intArray[0]);

//最終行の値の参照
System.out.println(intArray[9]);

1配列の基本