ITスクールの授業8日目のまとめ1:配列(Array)の概要
前書き
今までは、1つ1つ変数を作って、その変数に1つの値だけを入れることができた。しかし、規模が大きいデータを処理しているとすれば、変数を1つ1つ作って扱うことはありえない。
例えば、学校の1つのクラスの生徒の数なら30人ぐらいで終わるかもしれない。しかし、すごい有名で大人気のゲームの、ユーザー3000名のIDであれば、変数が3000個必要になるはずだ。
しかも、ゲームであればIDだけでなく、パスワード、キャラクターのニックネームなど、変数1種類あたり3000個の変数をまた作らなければならない。
こいいうふうに、多数多種の変数を管理するために、同じタイップのデータを結んで、1つの変数のように作ったのが配列(Array)である。上の1種あたり3000個の変数を作る場合を再び例にしてみると、1種のデータを1つの配列に結んで変数にしておき、その配列を通じて3000個の変数全部を扱うことができる。データの種が増えたとしても、種類ごとに配列を作ればいいことになる。
今回は、その配列の概要をまとめる。配列の変数についてまとめて、直接配列を生成することまでしてみる。
配列変数の特徴
配列の変数についてまとめる前に、変数を作るときに決めないといけない、テータのタイップについてもう1度簡単にまとめる。
データタイップには、基本データタイップと参照データタイップがある。基本データタイップは容量が決まってある。しかし、配列の変数は参照データタイップはデータが決まってない。配列を作る前には、その配列の中にどんなたいっぷのデータが、何個入るか分からないからだ。
配列の変数は参照データタイップであって、配列の変数が配列そのものを直接指してはいない。本当の配列は「heap」というメモリー空間に貯蔵されてあって、変数はその配列があるアドレスを持っているだけであるらしい。まだ詳しく説明はできないが、この事実が後に配列を扱うときに使われると教えられた。
とにかく、配列の変数は基本データとは異なって、変数の後ろに「.」を書くと、いろいろなメソッドや値を扱うことができる。よく使われるものは、下記の配列を直接作ってみる例文で見られると思う。
配列を作ってみよう
今回では簡単に配列を作ってみる。生成する方法と、配列に入ってある要素[1]を扱う方法などを例文でまとめる。
とりあえず、配列を作る前に変数を扱ってみよう。
//変数を1つ使って、3つのデータを出力してみる。
int score;
score = 80;
System.out.println("国語の点数: " + score);
score = 60;
System.out.println("英語の点数 : " + score);
score = 100;
System.out.println("数学の点数 : " + score);
//変数3つを使って、3つのデータを出力してみる。
int korScore = 80;
int engScore = 70;
int mathScore = 100;
System.out.println("国語の点数 : " + korScore);
System.out.println("英語の点数 : " + engScore);
System.out.println("数学の点数: " + mathScore);
続いて、配列を作って変数を結んだ、配列を宣言してみる。 配列の宣言の仕方は下記のようである。
2つの作り方のコードは下記である。
//配列を宣言だけして、そのあと値を入れる例文
int[] s = new int[3]; // データ型[] 変数名 = new データ型[要素の数];
s[0] = 80; //**重要**!! 配列の要素(インデックス)の番号は、1でない0から始まる。
s[1] = 60;
s[2] = 100;
System.out.println("国語の点数 : " + s[0]);
System.out.println("英語の点数 : " + s[1]);
System.out.println("数学の点数 : " + s[2]);
//宣言と同時に要素の値を初期化する例文
//配列の変数を宣言および生成
int[] scores = {83, 90, 87};
//総合と平均を求める
int sum = 0;
for(int i = 0; i < 3; i++) {
sum+=scores[i];
}
System.out.println("総合 : " + sum);
double avg = (double)sum / 3;
System.out.println("平均 : " + avg);
配列の「NULL」
配列を宣言するとき、配列の要素の数や値を決めず、「null」という特別な値に初期化することができる。
「null」は参照型データの変数に使える値である。「null」という意味は「今参照しているインスタンスがない」という意味である。nullに初期化されている配列は、名前だけがあって中身はないことと同じである。nullに初期化されている変数の要素や値にアクセスしようとすると、「NullPointerException」というエラーが発生する。英語を翻訳すると、「NULLであるアドレスであっての例外」とも言える。
int[] array = null; // 配列の値をnullに初期化
System.out.println(array[0]); // nullに初期化されている配列の要素にアクセスしようとすると、エラーが発生する。
array = new int[5]; // nullに初期化された配列に、あとで要素の数を決めることができる。
array = null;
array = {1, 2, 3, 4, 5}; このように、宣言と同時に初期化する方法は、nullに初期化されている配列に使えない。宣言と同時に初期化する場合だけに使える。
以上で、配列の概要をまとめてみた。配列はすごく大事な文法なので、何回に分けてまとめるかがわからない。
最近ITスクールでJAVAの授業が終わって、DBの授業が始まっているので、JAVAのまとめはできれば早く終える法がいいと思っているので、すこしは簡単にまとめることになるかもしれない。
-
インデックス(Index)ともいう。 ↩︎
Discussion