配列

配列の宣言

int[] a;
a = new int[5]

これにて、

a[0]
a[1]
a[2]
a[3]
a[4]

の配列要素が利用可能になる。

簡潔に書きたい場合は以下のように書く。

int[] a = new int[5];

初期値

初期値を調べるプログラムを書いてみた。

  1 public class Test {
  2   public static void main(String[] args) {
  3     byte[]     b = new byte[1];
  4     short[]    s = new short[1];
  5     int[]      i = new int[1];
  6     long[]     l = new long[1];
  7     float[]    f = new float[1];
  8     double[]   d = new double[1];
  9     char[]     c = new char[1];
 10     boolean[] bl = new boolean[1];
 11     String[] st  = new String[1];
 12     System.out.println("byte[0]    = "+b[0]);
 13     System.out.println("short[0]   = "+s[0]);
 14     System.out.println("int[0]     = "+i[0]);
 15     System.out.println("long[0]    = "+l[0]);
 16     System.out.println("float[0]   = "+f[0]);
 17     System.out.println("double[0]  = "+d[0]);
 18     System.out.println("char[0]    = "+c[0]);
 19     System.out.println("boolean[0] = "+bl[0]);
 20     System.out.println("String[0]  = "+st[0]);
 21   }
 22 }

実行してみた結果。

byte[0]    = 0
short[0]   = 0
int[0]     = 0
long[0]    = 0
float[0]   = 0.0
double[0]  = 0.0
char[0]    = 
boolean[0] = false
String[0]  = null

つまり、以下の通りです。

既定値
byte (byte)0
short (short)0
int 0
long 0L
float 0.0F
double 0.0D
char 空文字 16進表記で表すと\u0000
boolean false
String(参照型) null

素数の取得

配列の要素数を知りたいときは以下のようにします。

int[] a = new int[3];
System.out.println(a.length);    //  3  と表示

このlengthはfinal int型です。
よって、javaの修飾子final - rderaログで学んだように以下のように値を変更すると怒られます。

a.length = 100;  // エラー final 変数 length に値を代入することはできません。

初期化

初期化は以下のようにします。

int[] a = {0,1,2,3,4,5};

または、

int[] b;
b = new int[]{0,1,2,3,4,5}; 

確認してみる。

  1 public class Test {
  2   public static void main(String[] args) {
  3     int[] a = {0,1,2,3,4,5};
  4     for(int i=0;i<a.length;i++) {
  5       System.out.println("a["+i+"] = "+a[i]);
  6     }
  7 
  8     System.out.println();
  9     
 10     int[] b;
 11     b = new int[]{0,1,2,3,4,5}; 
 12     for(int i=0;i<b.length;i++) {
 13       System.out.println("b["+i+"] = "+b[i]);
 14     }
 15   
 16   }
 17 }

実行してみた結果。

$ java Test
a[0] = 0
a[1] = 1
a[2] = 2
a[3] = 3
a[4] = 4
a[5] = 5

b[0] = 0
b[1] = 1
b[2] = 2
b[3] = 3
b[4] = 4
b[5] = 5

多次元配列

2次元配列の宣言

int[][] x = new int[2][3];

または、

int[][] x;
x = new int[2][];
x[0] = new int[3];
x[1] = new int[3];

2次元配列の初期化

int[][] x = {
  {1,2,3},
  {4,5,6},
}

3次元配列の宣言

int[][][] y = new int[2][3][4];