😸

ITスクールの授業8日目のまとめ1:配列(Array)の概要

2023/08/23に公開

前書き

今までは、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つの作り方のコードは下記である。

ArrayTest
//配列を宣言だけして、そのあと値を入れる例文

		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のまとめはできれば早く終える法がいいと思っているので、すこしは簡単にまとめることになるかもしれない。

脚注
  1. インデックス(Index)ともいう。 ↩︎

Discussion