配列の前半では、配列の概要、記述方法等を紹介します。配列の後半では、配列の初期値、多次元配列についての紹介です。
もくじ
配列とは
今まではデータを保存する際には、変数を利用してきました。しかし、プログラムでは同じようなデータをたくさん保存する場合もあります。その際に、一つ一つ変数を作成すると、同じような変数名をたくさん作ることになり、効率が悪くなります。
そこで、複数のデータを一つの入れ物に保存する方法が配列(配列変数)です。
配列には複数のデータを保存することができますが、同じ型のデータしか保存ができません。また、一つずつのデータは「添え字(インデックス)」を利用してアクセスする必要があります。
配列の利用
配列を扱うには以下の3つの記述が必要です。
- 配列宣言
- 配列の実体確保
- 配列へのデータ代入および参照
配列宣言
配列宣言 | データ型[] 配列名 ; |
---|---|
記述例 | int[] numbers ; |
配列では[]をデータ型の右に記述する必要があります。(配列名の右でも可)
配列の実体確保
配列の実体確保 | 配列名 = new データ型[要素数] ; |
---|---|
記述例 | numbers = new int[5] ; |
変数と違い配列は宣言のみでは利用できず、new演算子を利用して配列の実体確保を行います。
new演算子の右にはデータ型と要素数を記述します。要素数は配列に保存できるデータの数です。要素数は後で変更することはできません。
配列へのデータ代入および参照
配列への データ代入および参照 |
配列名[添え字] = データ ; 配列名[添え字] ; |
---|---|
記述例 | numbers[4] = 500 ; System.out.println(numbers[4]) ; |
配列へデータを代入、または配列内のデータを参照したい場合は、配列名と添え字を組み合わせて利用します。添え字はインデックスとも表現されます。
添え字は「0から要素数の-1まで」利用できます。
例えば、new int[4] と記述された場合の添え字は0から3までとなります。
配列の要素数を超えた添え字を扱うと以下のようなエラーが表示されます。
at Number21.main(Number21.java:6)
配列 サンプルプログラム
以下のプログラムを「Number21.java」という名前でworkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。
1 2 3 4 5 6 7 8 9 |
class Number21{ public static void main(String[] args){ int[] numbers ; //配列宣言 numbers = new int[5] ; //配列の実体確保 numbers[0] = 100 ; //配列の0番目に代入 numbers[4] = 500 ; //配列の4番目に代入 System.out.println(numbers[4]); //配列のデータを参照 } } |
実行例
C:\work>javac Number21.java
C:\work>java Number21
500
※実行例はコンパイルから実行までの例を表示しています。
配列の様々な記述方法
配列は「宣言」「実体確保」「代入及び参照」という手順を踏んで記述しますが、以下の記述を行うことでまとめることができます。
宣言と実体確保 を同時に行う |
データ型[] 配列名 = new データ型[要素数] ; |
---|---|
記述例 | int[] numbers = new int[5] ; |
全てを同時に行う (初期化子の利用) |
データ型[] 配列名 = {データ,データ,….} ; |
---|---|
記述例 | int[] numbers = {100,200,300,400,500} ; |
初期化子を利用すると、配列作成と同時にデータを代入することができます。要素数はデータの数となります。
配列とループ文
配列はたくさんのデータを扱うため、ループ文と組み合わせて利用されることが多々あります。また、for文には配列(もしくはコレクション)向けの拡張forと呼ばれる文法も用意されています。
※拡張forについては別途記事で紹介
配列 サンプルプログラム2
「Number21.java」のプログラムを以下のように変更してください。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class Number21{ public static void main(String[] args){ int[] numbers ; //配列宣言 numbers = new int[5] ; //配列の実体確保 numbers[0] = 100 ; //配列の0番目に代入 numbers[4] = 500 ; //配列の4番目に代入 System.out.println(numbers[4]); //配列のデータを参照 //初期化子を利用して配列を作成 String[] names = {"伊藤","加藤","佐藤","尾藤","後藤"}; //配列内のデータをforと組み合わせて表示 for(int i = 0; i < 5; i++){ System.out.println(names[i]); } } } |
実行例
C:\work>javac Number21.java
C:\work>java Number21
500
伊藤
加藤
佐藤
尾藤
後藤
※実行例はコンパイルから実行までの例を表示しています。
配列の後半では「配列の初期値」「配列内のサイズ確認」「多次元配列」について解説します。
配列【前半】 復習問題
- 配列に必要な記述の組み合わせで適切なものを選んでください。
- 配列の実体確保には○という演算子が必要である。○に入る語句を選んでください。
- 配列の初期化子を利用するための記述を選んでください。
- int[] i = new int[10];の記述で利用できない添え字を選んでください。
- お疲れ様でした。
-
- 「宣言」「データの代入及び参照」
- 「実体確保」「データの代入及び参照」
- 「宣言」「実体確保」「データの代入及び参照」
- 「宣言」
-
- if
- new
- break
- continue
-
- String[] str = {“A”,”B”};
- String[] str = (“A”,”B”);
- String[] str = [“A”,”B”];
- String[] str = new {“A”,”B”};
-
- 0
- 1
- 9
- 10
まとめ
- 配列を利用すると同じデータ型のデータをまとめて扱うことができる
- 配列は「宣言」「実体確保」「代入及び参照」という3つの手順を踏む
- 初期化子を利用すると上記3つの手順をまとめて記述できる