Javaの配列の宣言や初期化について解説!
- システム
エンジニア - Javaの配列の宣言や初期化について教えてください。
- プロジェクト
マネージャー - 要素や型をどのように配列するかをプログラムで記述することを宣言をするといいます。宣言した後、配列を初期化して配列を使用できるようになります。
Javaとは?
プログラミング言語の1つである「Java」は、世界的に高い人気を誇っています。OSに依存せず、WindowsやMacOS、Linuxなどでも動作可能なのが「Java」の大きな特徴です。
「Java」を使って作れるものとしては、「Webアプリ」「Webサービス」「Androidアプリ」「デスクトップアプリ」などが挙げられます。さらに、オブジェクト指向型の言語であるため、現実をモデル化してプログラムを作りやすいという一面を備えています。
上記のような理由からたくさんの現場で利用されるため、「Java」の人気は非常に高くなっています。
この記事では、「Java」を学習する上で欠かせない「Javaの配列」と「初期化」についてご紹介します。
配列とは?
「配列」とは、同一種類の複数データを「情報」として記憶するデータ構造のことを指します。変数のような箱が複数並んでいるものをイメージしてもらえると分かりやすいでしょう。
この並んだ1つ1つを「要素」と呼びます。また、箱には添字と呼ばれる番号がついており、0から始まります。
このとき、添字が1からではなく、0から始まることに注意しましょう。
Javaにおける配列の宣言とは?
Javaにおける「配列の宣言」とは、自分の選んだ任意の型で、このような要素を持つ配列を作ります」ということをプログラムに記述することです。
そして、配列を作成するには、配列変数を宣言した後に、要素の作成と代入というステップを踏みます。ここでは、int型の要素を代入する配列の場合を例にとって見ていきましょう。
1
|
int[] score;
|
一般に、普通の整数を格納するデータ型のことをint型と呼びますが、この宣言で使われているint[]型は、一般的なint型とは異なるものなので、注意してください。
次に、要素の作成と代入を行います。ここでは、「int型の要素を10個作り、配列変数scoreに代入する」ものを例に見ていきます。
1
|
score = new int[10];
|
以上のようにすることで、要素数が10のint型の配列を作成することができました。
配列の利用
先ほど作成した、要素数が10のint型の配列を利用してみましょう。
先頭から5つ目の要素に、20を代入してみます。配列の最初の要素は0であるということをもう一度思い出して、以下のコードを見てください。
1
2
3
4
5
6
7
8
|
public class Main{
public static void main(String[] args){
int[] score;
score = new int[10];
score[4] = 20;
System.out.println(score[4]);
}
}
|
5行目の箇所で、先頭から5つ目の要素に20を代入します。また、6行目では、score[4]の中身を表示するというコードを書いています。
実際にコードを書いて、実行してみましょう。
配列の初期化
配列を利用するには、宣言した後で値を代入し、初期化を行なう必要があります。ちなみに、「変数」の場合は、変数を宣言すると同時に値を代入することを「変数の初期化」と呼んでいます。
ここでは、配列の初期化について見ていきましょう。
たとえば以下のようなコードでは、値を代入していないため、デフォルト値の0が出力されてしまいます。
1
2
3
4
5
6
7
|
public class Main{
public static void main(String[] args){
int[] score;
score = new int[10];
System.out.println(score[0]);
}
}
|
ここでは、intやdobleといった数値の型を利用したため、0が出力されました。
この時、boolean型を利用すれば、「false」が出力されます。こちらも、実際にコードを書いて実行して確認してみましょう。
配列の初期化における注意点としては、単一の変数を用いた場合には「コンパイルエラー」となるところが、今回のような配列の場合、コンパイルエラーではなく、「0」が出力されてしまうことです。
これは、開発者が初期化をしなければプログラムの欠陥を見過ごしてしまう危険性を意味しています。最初のうちは意識して初期化を行うようにしましょう。
配列の宣言と同時にnewを記述する方法
以下のようにコードを書くことで、配列の作成とnewによるサイズ指定をまとめて行うことができます。
1
|
int[] score = new int[10];
|
この方法を使えば、以下のように配列の作成とnewによるサイズ指定を別々に記述する必要がなく、簡潔にコードを記すことができます。
※配列の作成とnewによるサイズ指定を別々に記述した場合
1
2
|
int[] score;
score = new int[10];
|
配列の作成と初期値の代入の省略記法
以下のようにコードを記述することで、配列の作成と初期値の代入までをまとめて行うことができます。
1
2
3
4
5
6
7
8
9
10
|
public class Main{
public static void main(String[] args){
int[] score = new int[]{10, 20, 30, 40, 50, 60, 70};
System.out.println(score[0]);
System.out.println(score[1]);
System.out.println(score[2]);
System.out.println(score[3]);
System.out.println(score[4]);
}
}
|
このように書くことで、配列の作成と初期値の代入をまとめて行うことができ、このコードを実行すると、10,20,30,40,50がそれぞれ画面上に表示されます。
ガベージコレクション
「Java」にはガベージコレクションという仕組みが備わっており、実行中のプログラムが生み出したゴミを自動的に片付けてくれます。
PCに読みこまれる情報は、処理をしている間こそ必要ですが、その処理が終われば、読み書きすることはできないゴミとなってしまいます。そして、ゴミとなってしまった配列を放置しすぎると、メモリを圧迫してしまう危険性があります。
プログラマーが必要に応じてメモリ領域を割り当てたり、開放したりすることを「メモリ管理」と言いますが、C言語などには、この作業が不可欠です。
Javaの、ガベージコレクションを標準機能として備えているという面は、Javaが有用な理由の一つとして挙げられます。
多次元の配列
Javaにおける2次元配列は、正確には「表」ではなく、「配列の配列」になります。下のような3行2列の配列を例にして、2次元配列を見ていきましょう。
1
2
3
4
5
6
7
8
9
10
11
12
|
public class Main{
public static void main(String[] args){
int[] score = new int[3][2];
scores[0][0] = 10;
scores[0][1] = 20;
scores[1][0] = 30;
scores[1][1] = 40;
scores[2][0] = 50;
scores[2][1] = 60;
System.out.println(score[2][2]);
}
}
|
今回は簡単な紹介のみに留めますが、多次元の配列に関しても使用頻度が多いため、しっかりと押さえておきましょう。
なによりもまず、実際にコードを書いてみることが大切です。
- システム
エンジニア - Javaでプログラムを記述するときには「配列の宣言」や「初期化」が必要なのですね。
- プロジェクト
マネージャー - そうです。配列と初期化は必要な知識です。自分でコードを書いて、Javaの配列と初期化の学習に取り組んでいきましょう。
Javaの配列と初期化について知ろう
今回は、世界で高い人気を誇るプログラミング言語「Java」の配列と初期化を中心にご紹介しました。Javaに限らず、プログラミング言語を学習する上で、配列と初期化は、必ず必要になる知識と言えるでしょう。
プログラミングが上達するためには、実際に自分の手を動かしてコードを書いてみることが重要です。この記事の内容を参考にしながら、Javaの配列と初期化の学習について取り組んでみてください。
FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Java新着案件New Job
-
官公庁向け業務システム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給39万~44万円東京都千代田区(永田町駅) -
販売管理システム開発/Java/東京都中央区/【WEB面談可】/テレワーク
月給49万~55万円東京都中央区(京橋駅) -
生命保険会社向けシステム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給42万~48万円東京都千代田区(大手町駅) -
社会保険システムのパッケージ開発/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(新橋駅) -
金融機関向けシステム更改/Java/東京都江東区/【WEB面談可】/テレワーク
月給46万~51万円東京都江東区(豊洲駅) -
大手通信会社者向けWebシステム改修/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(品川駅)