配列
複数のデータを扱うときに、変数では不便に感じる場合があります。配列を使えば、複数のデータをまとめて扱うことができるようになります。配列は、変数をまとめて管理することができます。
例えば、10人分のテストの点数の合計点、平均点、最大点、最低点などを求めるプログラムを作るとします。10人分の点数を変数に記憶させて扱おうとする場合10個の変数を用意しなければなりません。配列なら10人分の点数をまとめて扱うことができます。
この節では、配列を操作する次の方法を学習します。
■ 配列を用意する
配列は次のように宣言して用意します。
| 配列宣言の書式 | 
|---|
| データ型[] 配列名 = new データ型[要素数指定]; | 
                    例:
                     int[] ary = new int[4];
                
○ ファイル
次のようにファイルを作成してください。
| ファイル名 | ArrayTest1.java | 
|---|
○ プログラム
次のようにプログラムを入力してください。
ArrayTest1.java
- import java.io.*;
 - class ArrayTest1{
 - public static void main(String[] args){
 - //配列の宣言をする
 - int[] ary = new int[4];
 - }
 - }
 
○ コンパイルと実行
                    C:¥work>javac ArrayTest1.java
                    C:¥work>
                
○ 解説
6行目では、整数値を4つ保存できる「ary」という名前の配列を用意しました。次のようなイメージで配列ができます。
■ 配列に値を代入する
配列を構成する一つ一つの変数は要素と呼ばれます。また要素にはインデックス番号が割り当てられます。インデックス番号(添字とも言う)は0から始まるので、指定した数より一つ少ないインデックス番号が最大となります。各要素にはインデックス番号が付くため、それぞれの要素を指定してデータを代入することができます。
| 配列代入の書式 | 
|---|
| 配列名[インデックス番号] = 式; | 
                    例:
                     ary[2] = 100;
                     System.out.println(ary[2]);
                
○ ファイル
次のようにファイルを作成してください。
| ファイル名 | ArrayTest2.java | 
|---|
○ プログラム
次のようにプログラムを入力してください。
ArrayTest2.java
- import java.io.*;
 - class ArrayTest2{
 - public static void main(String[] args){
 - //配列の宣言をする
 - int[] ary = new int[4];
 - //配列にデータを代入する
 - ary[2] = 100;
 - //配列を表示する
 - System.out.println(ary[0]);
 - System.out.println(ary[1]);
 - System.out.println(ary[2]);
 - System.out.println(ary[3]);
 - }
 - }
 
○ コンパイルと実行
                    C:¥work>javac ArrayTest2.java
                    C:¥work>java ArrayTest2
                    0
                    0
                    100
                    0
              
                    
                    C:¥work>
                
○ 解説
9行目では、配列のインデックス番号「2」番の要素に「100」を代入しています。配列名と要素番号を指定して代入すると、その要素の中に値が格納されます。他の要素は配列が用意されたときに設定される初期化の状態(0)のままです。
12~15行目では、配列の各インデックス番号を指定して要素に格納されているデータを表示しています。 配列名と要素番号を指定するとその要素の中身が参照できます。
■ 配列を初期化する
配列は、変数と同じように宣言と同時にデータの代入をすることができます。これを初期化といいます。
| 配列初期化の書式 | 
|---|
| データ型[] 配列名 = { 値1, 値2, …}; | 
                    例:
                     int[] ary = { 10, 20, 30, 40};
                
○ ファイル
次のようにファイルを作成してください。
| ファイル名 | ArrayTest3.java | 
|---|
○ プログラム
次のようにプログラムを入力してください。
ArrayTest3.java
- import java.io.*;
 - class ArrayTest3{
 - public static void main(String[] args){
 - //配列を初期化する
 - int[] ary = { 10, 20, 30, 40 };
 - //配列を表示する
 - System.out.println(ary[0]);
 - System.out.println(ary[1]);
 - System.out.println(ary[2]);
 - System.out.println(ary[3]);
 - }
 - }
 
○ コンパイルと実行
                    C:¥work>javac ArrayTest3.java
                    C:¥work>java ArrayTest3
                    10
                    20
                    30
                    40
                   
                    
                    C:¥work>
                
○ 解説
6行目では、配列の宣言と同時に値を格納しています。初期化の場合は配列の要素数を指定する必要はありません。波括弧({})で、カンマ区切りで指定した値の分だけ要素が用意されます。そして、用意された各要素に指定した順番に値が格納されます。
■ 配列の要素数を取得する
配列の要素数がいくつあるかを調べることができます。
| 配列の要素数取得の書式 | 
|---|
| 配列名.length | 
○ ファイル
次のようにファイルを作成してください。
| ファイル名 | ArrayLengthTest.java | 
|---|
○ プログラム
次のようにプログラムを入力してください。
ArrayLengthTest.java
- import java.io.*;
 - class ArrayLengthTest{
 - public static void main(String[] args){
 - //配列の宣言をする
 - String[] fruits = {"りんご", "ばなな", "みかん"};
 - //配列の要素数を表示する
 - System.out.printf("要素数:%d\n", fruits.length);
 - //配列の中身を表示する
 - System.out.println(fruits[0]);
 - System.out.println(fruits[1]);
 - System.out.println(fruits[2]);
 - }
 - }
 
○ コンパイルと実行
                    C:¥work>javac ArrayLengthTest.java
                    C:¥work>java ArrayLengthTest
                    要素数:3
                    りんご
                    ばなな
                    みかん
                    
                    C:¥work>
                
○ 解説
9行目では、配列の要素数を表示しています。配列は次の章で学習する繰り返し処理と組み合わせるととても便利です。繰り返す回数を決めるときに配列の要素数を使用することができます。そうすることで柔軟なプログラムを作成することが可能です。