////////////////////////////////////////////////////////////////////////////////
// << j131a.java >>
//
// 基礎(3):配列(1次元配列、宣言と確保、代入)
//
// ●配列
// 同一の型をもつ多数のデータを処理するときに、有用である。
// 個々のデータを配列の要素という。
//
// ●配列の宣言
//
// 型名 変数名[] または 型名[] 変数名
//
// ●配列の確保
//
// 変数名 = new 型名[要素数]
//
// ・配列の領域を確保するのに、予約語newを使う。
// 要素数分の領域が確保され、その先頭のアドレスが変数に格納される。
// ・配列の宣言と確保を同時にしてもよい。
// 型名 変数名[] = new 型名[要素数]
// 型名[] 変数名 = new 型名[要素数]
// ・配列の要素は、添字(そえじと読む)で指定する。添字は0から始まる。
//
// ●配列要素数の参照
//
// 変数名.length
//
////////////////////////////////////////////////////////////////////////////////
class j131a {
public static void main(String args[]) {
// 配列の宣言(int型の変数aの宣言)。
int a[];
// 配列の確保(10個分の配列を確保。a[0],a[1],...,a[9])。
a = new int[10];
// 配列要素へ代入。
a[0] = 111; a[1] = 222; a[2] = 333;
// 配列aの確認。
System.out.println("a[0] = " + a[0]);
System.out.println("a[1] = " + a[1]);
System.out.println("a[2] = " + a[2]);
// 配列aの要素数を確認。
System.out.println("配列aの要素数 = " + a.length);
System.out.println();
// 配列の宣言。配列の領域を確保していないことに注意。
int b[];
b = a; // 変数aに格納されているアドレスが変数bに代入される。
// 配列bの確認。
System.out.println("b[0] = " + b[0]);
System.out.println("b[1] = " + b[1]);
System.out.println("b[2] = " + b[2]);
// 配列bの要素数を確認。
System.out.println("配列bの要素数 = " + b.length);
System.out.println();
// 配列bを変更すると、配列aに影響する。
b[0] = -b[0]; b[1] = -b[1]; b[2] = -b[2];
// 配列bの確認。
System.out.println("b[0] = " + b[0]);
System.out.println("b[1] = " + b[1]);
System.out.println("b[2] = " + b[2]);
// 配列aの確認。
System.out.println("a[0] = " + a[0]);
System.out.println("a[1] = " + a[1]);
System.out.println("a[2] = " + a[2]);
}
}
実行結果
% javac j131a.java
% java j131a
a[0] = 111
a[1] = 222
a[2] = 333
配列aの要素数 = 10
b[0] = 111
b[1] = 222
b[2] = 333
配列bの要素数 = 10
b[0] = -111
b[1] = -222
b[2] = -333
a[0] = -111
a[1] = -222
a[2] = -333