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

宣言
書式
型[] 変数名;
1次元配列の宣言です。
項目説明
配列の型を指定します。
変数名任意の名称を付けます。

生成
書式
new 配列型[要素数];
{要素[,要素]…};
要素、初期化する場合は各要素を指定します。

new 配列型[要素数]{要素[,要素]…};
配列の生成と初期化を行う書式です。
項目説明
配列型配列の型を指定します。
要素数配列のサイズをint型整数で指定します。有効範囲は0〜2147483647です。

代入
書式
配列型変数 = 配列型変数;
代入元と代入先の型と次元が一致していないとコンパイルエラーになります。

アクセス
書式
変数名[添え字]
各要素にアクセスする書式です。
 
変数名.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][][]など、一番左のサイズ指定は必須です。

ソースコード説明
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]);
 }
}
トップ >  プログラミング言語 >  Java >  配列