☜前の章へ メソッドの呼び出し方から引数と戻り値まで
☞次の章へ オブジェクト指向とクラス
- 配列とは
- 配列の基本的な書き方
- 多次元配列(2次元配列)の書き方
- lengthの書き方
- ループで配列の値を出力する方法
変数は、1つの変数につき、1つの値が入る箱の様なものでした。 配列は、1つの配列につき、複数の値が入る箱の様なものです。
配列とは
配列とは、同じ型の複数の値が1つの変数に格納されたものです。
変数
| 項目 | Aさん |
| 身長 | 154 |
変数の場合、例えばAさんの身長を変数に格納しようとすると以下のようになります。
int height = 154;このように変数には1つの値しか格納できません。
配列
| 項目 | Aさん | Bさん | Cさん | Dさん | Eさん |
| 身長 | 154 | 178 | 166 | 144 | 161 |
配列の場合は、Aさん、Bさん、Cさん、Dさん、Eさんの身長を格納することができます。
int[] height = {154, 178, 166, 144, 161};どうですか、意外と簡単に配列を書けますよね。
配列変数の中には、上記の配列のイメージのように5つの値が入っています。
表をイメージすると分かりやすいです。
配列の基本的な書き方
①配列を宣言する方法
int[] height;変数の宣言とは違い、型名の後ろに[]が必要です。変数名の後ろに[]を書くこともできますが、型名の後ろに[]を書く方が一般的です。
②宣言された配列を初期化する方法
height = new int[5];既に宣言されている配列を初期化する方法です。
new int[5]とすると、配列に値を5つ入れることが出来ます。
デフォルト値である、0が5つ代入されます。
③配列の値を参照し出力する方法
public class App {
public static void main(String[] args) {
int[] height;
height = new int[5];
System.out.println(height[0]);
System.out.println(height[1]);
System.out.println(height[2]);
System.out.println(height[3]);
System.out.println(height[4]);
}
}出力結果

配列の値を参照するには、次のように書く必要があります。
height[0]
値は5つ入っており、1番最初の値を参照するためには、[0]と書く必要があります。
[1]は2番目、[2]は3番目になります。
[0]のように書かれている数字のことを、添え字やインデックス番号と言います。
④配列の宣言と初期化を同時に行う方法
int[] height = new int[5];配列の宣言と初期化を同時に行うこともできます。
⑤配列の宣言と初期化と代入を同時に行う方法
int[] height = new int[]{154, 178, 166, 144, 161};
String[] height_string = new String[]{"154", "178", "166", "144", "161"};new int[]の後ろに{}を書き、{}の中に値を書くと、配列の宣言、初期化、代入を同時に行うことができます。
String型の場合は、代入したい値を”(ダブルクォーテーション)で囲みます。
この時、new int[]、new String[]は省略可能です。
int[] height = {154, 178, 166, 144, 161};
String[] height_string = {"154", "178", "166", "144", "161"};⑥配列に値の代入(追加)する方法
public class App {
public static void main(String[] args) {
int[] height = {154, 178, 166, 144, 161};
height[0] = 999;
System.out.println(height[0]);
}
}出力結果

代入したい配列のインデックス番号を指定して代入します。
多次元配列(2次元配列)の書き方
①多次元配列のイメージ
配列
| 項目 | Aさん | Bさん | Cさん | Dさん | Eさん |
| 身長 | 154 | 178 | 166 | 144 | 161 |
2次元配列
| 項目 | Aさん | Bさん | Cさん | Dさん | Eさん |
| 出席番号 | 5 | 8 | 13 | 18 | 22 |
| 身長 | 154 | 178 | 166 | 144 | 161 |
配列のイメージに出席番号が加わりました。
配列の場合、身長だけが保存されていたため、誰の身長かを特定することが出来ませんでした。
出席番号が分かれば、どの出席番号の人の身長かを特定することができます。
それを実現するために2次元配列を使うことができます。
②多次元配列の宣言と初期化を同時にする方法
int[][] sintyoA = new int[2][5];配列の宣言と初期化は次のように行いました。
int[] height = new int[5];
多次元配列の場合は、[]の数が増えるだけです。
出席番号と身長を格納したいので左の[]は要素数が2です。
5人分のデータを格納したいので右の[]は要素数が5です。
③多次元配列の宣言と初期化と代入を同時に行う方法
int[][] height = new int[][]{{5,8,13,18,22},{154, 178, 166, 144, 161}};new int[][]の後ろに{{},{}}を書き、{}の中に値を書くと、配列の宣言、初期化、代入を同時に行うことができます。
この時、new int[]、new String[]は省略可能です。
int[][] height = {{5,8,13,18,22},{154, 178, 166, 144, 161}};{5,8,13,18,22}がheight[0][]に入ります。
{154, 178, 166, 144, 161}がheight[1][]に入ります。
④多次元配列の値を参照し出力する方法
public class App {
public static void main(String[] args) {
int[][] height = {{5,8,13,18,22},{154, 178, 166, 144, 161}};
System.out.println("出席番号");
System.out.println(height[0][0]);
System.out.println(height[0][1]);
System.out.println(height[0][2]);
System.out.println(height[0][3]);
System.out.println(height[0][4]);
System.out.println("身長");
System.out.println(height[1][0]);
System.out.println(height[1][1]);
System.out.println(height[1][2]);
System.out.println(height[1][3]);
System.out.println(height[1][4]);
}
}出力結果

多次元配列の値を参照するには、次のように書く必要があります。
height[0][0]
出席番号はheight[0][]に入っており、身長はheight[1][]に入っています。
出席番号を取得したい場合、height[0][]の左の括弧はそのままにして、右の括弧のインデックス番号を指定します。
配列の基本操作と応用
①lengthで配列の要素数を取得する方法
public class App {
public static void main(String[] args) {
int[] height = {154, 178, 166, 144, 161};
int len = height.length;
System.out.println(len);
}
}出力結果

配列の要素数を求めるためには、「height.length」と書きます。
出力結果が5になりました。
配列の要素は5個あることが分かります。
②lengthで多次元配列の要素数を取得する方法
public class App {
public static void main(String[] args) {
int[][] height = {{5,8,13,18,22},{154, 178, 166, 144, 161}};
System.out.println(height.length);
System.out.println(height[0].length);
}
}出力結果

多次元配列の要素数を求めるためには、「height.length」で1次元目の要素数を取得できます。
「height[0].length」で2次元目の要素数を取得できます。
③ループで配列の値を出力する方法
public class App {
public static void main(String[] args) {
int[] height = {154, 178, 166, 144, 161};
int len = height.length;
for(int i = 0; i < len; i++) {
System.out.println(height[i]);
}
}
}出力結果

ループでは簡潔に書いて出力することが出来ます。
④多重ループで多次元配列の値を出力する方法
public class App {
public static void main(String[] args) {
int[][] height = {{5,8,13,18,22},{154, 178, 166, 144, 161}};
for(int i = 0; i < height.length; i++) {
for(int j = 0; j < height[0].length; j++) {
System.out.println(height[i][j]);
}
}
}
}出力結果

内側のループは、外側のループ1回につき5回ループします。
多重ループを使えば、多次元配列の値を全て取得できます。
練習問題
int型の配列を宣言し、10、11、12、13、14、15を代入し、表示してみましょう
public class App {
public static void main(String[] args) {
// 整数型の配列を宣言
int[] numbers = {10, 11, 12, 13, 14, 15};
// 配列の要素を表示
System.out.print("配列の要素: ");
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + " ");
}
System.out.println(); // 改行
}
}出力結果

int型の2次元配列を、自分の身長と体重で初期化し、表示してみましょう
public class App {
public static void main(String[] args) {
// 2次元配列を宣言して身長と体重で初期化
int[][] heightWeightArray = {
{170, 65}
};
// Person 1の身長と体重を表示
System.out.println("Person 1: 身長=" + heightWeightArray[0][0] + "cm, 体重=" + heightWeightArray[0][1] + "kg");
}
}出力結果


