.net column

.NET開発者のためのブログメディア

Javaの配列の宣言や初期化について解説!

2020年07月14日
SE
Javaの配列の宣言や初期化について教えてください。
PM
要素や型をどのように配列するかをプログラムで記述することを宣言をするといいます。宣言した後、配列を初期化して配列を使用できるようになります。

Javaとは?

プログラミング言語の1つである「Java」は、世界的に高い人気を誇っています。OSに依存せず、WindowsやMacOS、Linuxなどでも動作可能なのが「Java」の大きな特徴です。

「Java」を使って作れるものとしては、「Webアプリ」「Webサービス」「Androidアプリ」「デスクトップアプリ」などが挙げられます。さらに、オブジェクト指向型の言語であるため、現実をモデル化してプログラムを作りやすいという一面を備えています。

上記のような理由からたくさんの現場で利用されるため、「Java」の人気は非常に高くなっています。

この記事では、「Java」を学習する上で欠かせない「Javaの配列」と「初期化」についてご紹介します。

配列とは?

「配列」とは、同一種類の複数データを「情報」として記憶するデータ構造のことを指します。変数のような箱が複数並んでいるものをイメージしてもらえると分かりやすいでしょう。

この並んだ1つ1つを「要素」と呼びます。また、箱には添字と呼ばれる番号がついており、0から始まります。

このとき、添字が1からではなく、0から始まることに注意しましょう。

Javaにおける配列の宣言とは?

Javaにおける「配列の宣言」とは、自分の選んだ任意の型で、このような要素を持つ配列を作ります」ということをプログラムに記述することです。

そして、配列を作成するには、配列変数を宣言した後に、要素の作成と代入というステップを踏みます。ここでは、int型の要素を代入する配列の場合を例にとって見ていきましょう。

int[] score;

一般に、普通の整数を格納するデータ型のことをint型と呼びますが、この宣言で使われているint[]型は、一般的なint型とは異なるものなので、注意してください。

次に、要素の作成と代入を行います。ここでは、「int型の要素を10個作り、配列変数scoreに代入する」ものを例に見ていきます。

score = new int[10];

以上のようにすることで、要素数が10のint型の配列を作成することができました。

配列の利用

先ほど作成した、要素数が10のint型の配列を利用してみましょう。

先頭から5つ目の要素に、20を代入してみます。配列の最初の要素は0であるということをもう一度思い出して、以下のコードを見てください。

1. public class Main{
2. public static void main(String[] args){
3. int[] score;
4. score = new int[10];
5. score[4] = 20;
6. System.out.println(score[4]);
7. }
8. }

5行目の箇所で、先頭から5つ目の要素に20を代入します。また、6行目では、score[4]の中身を表示するというコードを書いています。

実際にコードを書いて、実行してみましょう。

配列の初期化

配列を利用するには、宣言した後で値を代入し、初期化を行なう必要があります。ちなみに、「変数」の場合は、変数を宣言すると同時に値を代入することを「変数の初期化」と呼んでいます。

ここでは、配列の初期化について見ていきましょう。

たとえば以下のようなコードでは、値を代入していないため、デフォルト値の0が出力されてしまいます。

1. public class Main{
2. public static void main(String[] args){
3. int[] score;
4. score = new int[10];
5. System.out.println(score[0]);
6. }
7. }

ここでは、intやdobleといった数値の型を利用したため、0が出力されました。

この時、boolean型を利用すれば、「false」が出力されます。こちらも、実際にコードを書いて実行して確認してみましょう。

配列の初期化における注意点としては、単一の変数を用いた場合には「コンパイルエラー」となるところが、今回のような配列の場合、コンパイルエラーではなく、「0」が出力されてしまうことです。

これは、開発者が初期化をしなければプログラムの欠陥を見過ごしてしまう危険性を意味しています。最初のうちは意識して初期化を行うようにしましょう。

配列の宣言と同時にnewを記述する方法

以下のようにコードを書くことで、配列の作成とnewによるサイズ指定をまとめて行うことができます。

int[] score = new int[10];

この方法を使えば、以下のように配列の作成とnewによるサイズ指定を別々に記述する必要がなく、簡潔にコードを記すことができます。

※配列の作成とnewによるサイズ指定を別々に記述した場合
int[] score;
score = new int[10];

配列の作成と初期値の代入の省略記法

以下のようにコードを記述することで、配列の作成と初期値の代入までをまとめて行うことができます。

1. public class Main{
2. public static void main(String[] args){
3. int[] score = new int[]{10, 20, 30, 40, 50, 60, 70};
4. System.out.println(score[0]);
5. System.out.println(score[1]);
6. System.out.println(score[2]);
7. System.out.println(score[3]);
8. System.out.println(score[4]);
9. }
10. }

このように書くことで、配列の作成と初期値の代入をまとめて行うことができ、このコードを実行すると、10,20,30,40,50がそれぞれ画面上に表示されます。

ガベージコレクション

「Java」にはガベージコレクションという仕組みが備わっており、実行中のプログラムが生み出したゴミを自動的に片付けてくれます。

PCに読みこまれる情報は、処理をしている間こそ必要ですが、その処理が終われば、読み書きすることはできないゴミとなってしまいます。そして、ゴミとなってしまった配列を放置しすぎると、メモリを圧迫してしまう危険性があります。

プログラマーが必要に応じてメモリ領域を割り当てたり、開放したりすることを「メモリ管理」と言いますが、C言語などには、この作業が不可欠です。

Javaの、ガベージコレクションを標準機能として備えているという面は、Javaが有用な理由の一つとして挙げられます。

多次元の配列

Javaにおける2次元配列は、正確には「表」ではなく、「配列の配列」になります。下のような3行2列の配列を例にして、2次元配列を見ていきましょう。

1. public class Main{
2. public static void main(String[] args){
3. int[] score = new int[3][2];
4. scores[0][0] = 10;
5. scores[0][1] = 20;
6. scores[1][0] = 30;
7. scores[1][1] = 40;
8. scores[2][0] = 50;
9. scores[2][1] = 60;
10. System.out.println(score[2][2]);
11. }
12. }

今回は簡単な紹介のみに留めますが、多次元の配列に関しても使用頻度が多いため、しっかりと押さえておきましょう。

なによりもまず、実際にコードを書いてみることが大切です。

SE
Javaでプログラムを記述するときには「配列の宣言」や「初期化」が必要なのですね。
PM
そうです。配列と初期化は必要な知識です。自分でコードを書いて、Javaの配列と初期化の学習に取り組んでいきましょう。

Javaの配列と初期化について知ろう

今回は、世界で高い人気を誇るプログラミング言語「Java」の配列と初期化を中心にご紹介しました。Javaに限らず、プログラミング言語を学習する上で、配列と初期化は、必ず必要になる知識と言えるでしょう。

プログラミングが上達するためには、実際に自分の手を動かしてコードを書いてみることが重要です。この記事の内容を参考にしながら、Javaの配列と初期化の学習について取り組んでみてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)