配列
概要
データの集合を扱うことができる配列の説明です。
解説
配列を使用することで連続したデータの集合を扱えます。
連続した領域を変数として定義でき、添え字でアクセスできます。
プリミティブのほか、クラスも配列にできます。サイズは固定で後から変更はできません。
サイズを3とすると、添え字の有効範囲は0〜2になります。
例
データの集合を扱うことができる配列の説明です。
解説
配列を使用することで連続したデータの集合を扱えます。
連続した領域を変数として定義でき、添え字でアクセスできます。
プリミティブのほか、クラスも配列にできます。サイズは固定で後から変更はできません。
サイズを3とすると、添え字の有効範囲は0〜2になります。

宣言
書式
型[] 変数名;
1次元配列の宣言です。
型[] 変数名;
1次元配列の宣言です。
項目 | 説明 |
型 | 配列の型を指定します。 |
変数名 | 任意の名称を付けます。 |
生成
書式
new 配列型[要素数];
{要素[,要素]…};
要素、初期化する場合は各要素を指定します。
new 配列型[要素数]{要素[,要素]…};
配列の生成と初期化を行う書式です。
new 配列型[要素数];
{要素[,要素]…};
要素、初期化する場合は各要素を指定します。
new 配列型[要素数]{要素[,要素]…};
配列の生成と初期化を行う書式です。
項目 | 説明 |
配列型 | 配列の型を指定します。 |
要素数 | 配列のサイズをint型整数で指定します。有効範囲は0〜2147483647です。 |
代入
書式
配列型変数 = 配列型変数;
代入元と代入先の型と次元が一致していないとコンパイルエラーになります。
配列型変数 = 配列型変数;
代入元と代入先の型と次元が一致していないとコンパイルエラーになります。
アクセス
書式
変数名[添え字]
各要素にアクセスする書式です。
変数名.length
要素数を取得する書式です。 各要素に対しては添え字演算子でアクセスします。
また、配列型変数.lengthで要素数を取得できます。
有効範囲外の添え字を指定するとArrayIndexOutOfBoundsExceptionが発生します。
変数名[添え字]
各要素にアクセスする書式です。
変数名.length
要素数を取得する書式です。 各要素に対しては添え字演算子でアクセスします。
また、配列型変数.lengthで要素数を取得できます。
有効範囲外の添え字を指定するとArrayIndexOutOfBoundsExceptionが発生します。
例
ソースコード | 説明 |
int[] ar = new int[3]; System.out.println("length" + ar.length); for(int i = 0;i < ar.length;i++){ ar[i] = i; } System.out.println(ar[1]); | 要素数3の配列arに0〜2を代入し、2番目の要素を出力しています。 |
int[] ar = new int[3]; try{ ar[-1] = 3; } catch(Exception e){ System.out.println(e); } try{ ar[3] = 3; } catch(Exception e){ System.out.println(e); } | 添え字の有効範囲外にアクセスしています。 |
結果 | 説明 |
length3 1 | サイズと2番目の要素が出力されています。 |
java.lang.ArrayIndexOutOfBoundsException: -1 java.lang.ArrayIndexOutOfBoundsException: 3 | 例外が発生しています。 |
多次元配列
多次元配列は厳密には1次元配列の入れ子
1次元配列の中に1次元配列への参照が入ります。
書式
型[][] 変数名;
型[][][] 変数名;
型{[]}… 解説
生成時は new int[3][]やnew int[5][][]など、一番左のサイズ指定は必須です。
例
1次元配列の中に1次元配列への参照が入ります。
書式
型[][] 変数名;
型[][][] 変数名;
型{[]}… 解説
生成時は new int[3][]やnew int[5][][]など、一番左のサイズ指定は必須です。
例
ソースコード | 説明 |
int[][] a1 = new int[3][2]; for(int i = 0;i < a1.length;i++){ for(int j = 0;j < a1[i].length;j++){ System.out.println(a1[i][j]); } } | ![]() |
int[][] a1 = new int[2][]; a1[0] = new int[1]; a1[1] = new int[3]; for(int i = 0;i < a1.length;i++){ for(int j = 0;j < a1[i].length;j++){ System.out.println(a1[i][j]); } } | ![]() |
int[][] a1 = {{3},{1,2}}; for(int i = 0;i < a1.length;i++){ for(int j = 0;j < a1[i].length;j++){ System.out.println(a1[i][j]); } } | ![]() |