配列とは?①(宣言と初期化の仕方)【ゼロから始めるJavaの基礎~その14~】
今回からはJavaにおける配列というものについてご紹介をしていきます。
こちらの記事で、変数は値を保管しておく箱のようなものだという説明をしましたが覚えていますでしょうか?
変数が1つのものだけを保管しておく箱だとしたら配列はいくつかのものをまとめて保管しておける、仕切りのある箱を想像してもらえればいいかなと思います。
プログラム上で変数を使えることにより、私達は長い文字列や複雑な円周率も、その値を変数に代入しておくことで変数名を覚えているだけで、それらの値を暗記しておいたり毎回手入力せずとも使うことができますよね。
しかし、こういった変数がどんどん増えてくると、今度はどの変数にどの値が代入されていたかを管理するのが大変になります。
例えば、とあるプログラムで規則性のない数字を10個使いたい場合があったとしましょう。変数に1つずつ値を代入すると下記のようになります。
【サンプル】
// 変数を10個用意して値を代入している。
int num1 = 101;
int num2 = 107;
int num3 = 3;
int num4 = 56;
int num5 = 89;
int num6 = 320;
int num7 = 458;
int num8 = 99;
int num9 = 8;
int num10 = 76;
これでも特に問題は無いように思いますが、配列を使うとよりスッキリとした書き方を出来るようになります。
【サンプル】
// 変数は1つだけで、その中に10個のデータが入っている。
int[] numbers = {101, 107, 3, 56, 89, 320, 458, 99, 8, 76};
ソースコードの読みやすさを表す時に『可読性』という言葉がよく使われます。
変数を10個程度だと配列を使ってもそこまで変わりはないかもしれませんが、扱うデータの数が50件だったり、100件だったりすると話が変わってきます。
概要はこのあたりにしておき、実際に配列を使う際の構文をサンプルとともに見ていきましょう。
配列の宣言
配列もまずは変数と同じように配列変数という変数を用意する必要があります。値を入れておくための箱を用意する段階ですね。
データ型 配列変数名[];
(例)int numbers[];
『[]』という記号が変数名の後ろに付与されるだけで、他は変数の宣言の場合と同じですね。
例では整数(int)型の『numbers』という名前の配列変数を宣言しています。
配列の生成
配列の宣言が配列の大枠となる箱を準備する段階だとすると、配列の生成は、仕切りを用意する段階だと言えます。
何個の要素を保管しておける箱にするのかを決めていきます。
配列変数名 = new データ型[要素数];
(例)numbers = new int[3];
『new』はそのままですが、『new演算子』と呼ばれます。「突然現れたnew演算子とはなんですか!?」という状態になるのが普通だとは思いますが、それを説明するには『クラス』や『インスタンス』といった概念まで説明をする必要が出てきてしまうので、詳しい説明はその時にしましょう。
ここでは『配列を作成する時にはnew演算子を使う必要がある』とだけ覚えておいてください。
『要素数』の部分には、配列の領域として確保したい数(保管したいデータの数)を指定します。
ちなみに、ここで指定した要素数を後から変更することは出来ません。
より大きな領域が必要になった場合に配列で対応するには、より大きな領域を持った配列を新たに生成する必要があります。
宣言と生成を一文で記述する
配列の宣言と生成は一文にまとめて記述することが出来ます。
データ型[] 配列変数名 = new データ型[要素数];
(例)int[] numbers = new int[3];
これで複数の値をまとめて保管しておける『配列』という箱を準備することが出来るようになりました。
今のところはまだ、箱の中身は空っぽです。次のページで用意した箱に値を保管する方法と、保管した値を使う方法を見ていきましょう!