配列の宣言
Javaでは、配列を使用する場合、
1.配列を宣言する
2.配列要素を確保する
という作業が必要になります。
- 文法
int test[]; /* 配列の宣言 */
test = new int[5]; /* 配列要素の確保 */
- 要素数
- Java の配列の添え字は、C言語と同じように0から始まります。
つまり、最大の要素番号は「要素数-1」です。
例えば、test = new int[5]; で宣言した場合、
test[0] ~ test[4] までの5つを使用することが可能です。
- 利用法
- 文法は、
配列変数名[添字] = 式;
と、いたって簡単である。
1
2
3
4
5
6
7
8
9
|
|
int test[];
test = new int[5];
test[0] = 80;
test[1] = 60;
test[2] = 50;
test[3] = 0;
test[4] = 75;
|
配列の利用
- 例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
-
|
|
|
|
|
|
|
|
|
|
-
|
|
!
!
!
| class Sample
{
public static void main(String args[])
{
int test[];
test = new int[5];
test[0] = 80;
test[1] = 70;
test[2] = 60;
test[3] = 50;
test[4] = 40;
for(int i=0; i < 5; i++)
{
System.out.println((i+1) + "番目の配列の中身は" +
test[i] + "です");
}
}
}
|
- 注意点
- 原則的に、配列の大きさを超えた要素は利用することはできません。
例えば、test = new int[5]; で確保した配列を、
test[10] = 100; と使用することはできません。
コンパイルが通ったとしても、メモリを破壊することなり、
正しく動作しなくなります。
様々な配列の記述
- 配列の準備
/* その1 */
int test[];
test = new int[5];
/* その2 */
int test = new int[5];
- 配列の初期化
- 下記のように配列を宣言すると、初期化も一緒に行ってくれます。
int test = {80, 70, 60, 50, 40};
配列変数
Javaには、int[] 型という型が存在します。
例えば、
int test[];
test = new int[5];
と、
int[] test;
test = new int[5];
は等価です。
そして、配列内の各要素を簡単にコピーすることができます。
- 例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
-
|
-
|
|
|
|
|
|
|
|
|
|
!
!
| class Sample
{
public static void main(String args[])
{
int test1[];
test1 = new int[3];
test1[0] = 80;
test1[1] = 70;
test1[2] = 60;
int test2[];
test2 = test1;
}
}
|
プリント文などで、上記プログラムの test2 の中身を表示させてみてください。
見事にコピーされているはずです。
メモリマップ上で説明すると、test1[0] と test2[0]、
test1[1] と test2[1]、test1[2] と test2[2]、が同じ番地を指していることになります。
つまり、C言語で言うところの、ポインタに相当します。
配列の応用
- 便利なメソッド
配列変数名.length
とすると、配列の長さ(大きさ/要素数)を知ることができます。
- 例
1
2
3
4
5
6
7
8
9
10
11
12
|
-
|
-
|
|
|
-
|
!
!
!
| class Sample
{
public static void main(String args[])
{
int test[] = {80, 70, 60, 50, 40};
for (int i = 0; i < test.length; i++)
{
System.out.println((i+1) + "番目の中身は" + test[i] + "です");
}
}
}
|
多次元配列
Javaでは、配列の要素を更に配列とすることで、2次元以上の
配列を扱うことができます。
例えば、2次元配列であれば、下記のようになります。
型名 配列変数名[][];
配列変数名 = new 型名[要素数][要素数];
- 例
1
2
3
4
5
6
7
|
|
int test[][] = { {80, 70}, {60, 50}, {40, 30} };
test.length;
test[添え字].length
|