皆さん、こんにちは!Javaの勉強、順調に進んでいますか? 以前の記事(変数って何? データの入れ物を理解しよう | ToolDocs)では、変数を使ってデータを一つだけ格納する方法を学びましたよね。例えば、String name = "佐藤"; のように、一つの名前を保存できました。
でも、ちょっと考えてみてください。もし、クラス全員の名前を保存したいとか、テストの点数を全員分記録したい、なんてことになったらどうでしょう?一人ずつ変数を用意していたら、あっという間に変数の数がすごいことになっちゃいますよね?
そこで登場するのが、今回の主役**「配列」**なんです!配列は、**同じ種類のデータをまとめて扱うことができる「データの入れ物」**だと思ってください。まさに、たくさんのデータを整理整頓するための便利な道具なんですよ!
配列は「整理棚」みたいなもの!
イメージとしては、引き出しがたくさん並んだ「整理棚」を思い浮かべると分かりやすいかもしれません。 それぞれの引き出しには、同じ種類のものがしまってあります。例えば、1段目の引き出しには「佐藤さんの点数」、2段目には「田中さんの点数」、3段目には「鈴木さんの点数」といった具合です。
Javaの配列も全く同じで、「同じ種類のデータ」を、まるで引き出しのように順番に並べて格納できるんです。
配列を使わないとどうなる?(地獄絵図…)
配列を使わないでたくさんのデータを扱おうとすると、本当に大変なんです。 例えば、5人のテストの点数を変数で表そうとすると…
Java
int score1 = 85;
int score2 = 92;
int score3 = 78;
int score4 = 65;
int score5 = 95;
こんな感じで、点数の数だけ変数を宣言しないといけません。 もしこれが50人、100人、いや1000人になったら…?考えるだけでもゾッとしますよね。
配列を使えばスッキリ解決!
でも、配列を使えばたった1行で解決できちゃいます!
Java
int[] scores = {85, 92, 78, 65, 95};
どうですか?たった1行で5人分の点数をまとめて扱えるようになりました! これが配列の最大の魅力なんです。
配列の宣言と初期化
それでは、実際にJavaで配列を宣言したり、値を格納したりする方法を見ていきましょう。
配列を宣言する基本的な形はこれです。
Java
データ型[] 配列名;
データ型の後に[]をつけるのがポイントです。これで「この変数は配列ですよー」とJavaに教えてあげているわけですね。
そして、配列を実際に使うためには、メモリ上にどれくらいの大きさの箱を用意するのか、つまり「配列の長さ」を決めてあげる必要があります。これを**「初期化」**と呼びます。
初期化の方法はいくつかあります。
1. 要素の数を指定して初期化
まず、配列に入れる要素の数をあらかじめ決めて初期化する方法です。
Java
int[] numbers = new int[3]; // int型の要素を3つ格納できる配列を生成
このコードは、「int型のデータを3つ入れられる配列numbersを作ってくださいね」という意味になります。 この段階では、それぞれの要素には0(数値型の場合)やnull(参照型の場合)などのデフォルト値が入っています。
2. 初期値を指定して初期化
配列を宣言すると同時に、中に格納する値を指定してしまうこともできます。
Java
String[] fruits = {"apple", "banana", "orange"}; // String型の配列に初期値を指定
このコードは、「String型の配列fruitsを宣言して、最初から"apple", "banana", "orange"を入れておいてくださいね」という意味です。この場合、配列の長さは自動的に3になります。
配列の要素にアクセスしよう!
配列にデータを入れたら、次はそれを取り出したり、変更したりする方法を知りたいですよね。 配列のそれぞれの引き出しには、**「インデックス(添字)」**という番号がついています。
重要なポイント! インデックスは「0」から始まるんです!
例えば、3つの要素を持つ配列fruitsがあったとして…
fruits[0]:1番目の要素("apple")fruits[1]:2番目の要素("banana")fruits[2]:3番目の要素("orange")
となります。間違えて「1」から数えないように注意してくださいね!
実際にコードで見てみましょう。
Java
String[] fruits = {"apple", "banana", "orange"};
// 1番目の要素("apple")を取り出して表示
System.out.println(fruits[0]); // 実行結果: apple
// 2番目の要素("banana")を別の値に変更
fruits[1] = "grape";
System.out.println(fruits[1]); // 実行結果: grape
このように、配列名[インデックス]と書くことで、特定の要素にアクセスすることができます。
配列の長さを取得する
配列がどれくらいの長さなのか(いくつの要素を格納できるのか)を知りたい場合は、lengthというプロパティを使います。
Java
int[] scores = {85, 92, 78, 65, 95};
System.out.println("配列の長さは: " + scores.length + "です。"); // 実行結果: 配列の長さは: 5です。
lengthは配列の要素数そのものを表しているので、インデックスの最大値はlength - 1になることを覚えておきましょう。

paizaで実行した結果
for文と配列は相性抜群!
配列の全ての要素を順番に処理したい、なんていう時に大活躍するのがfor文です。 前回の記事(https://tooldocs.net/)でfor文を学びましたよね?あれがここで活きてきます!
例えば、先ほどのscores配列の全ての点数を表示したい場合、for文を使わないと…
Java
System.out.println(scores[0]);
System.out.println(scores[1]);
System.out.println(scores[2]);
System.out.println(scores[3]);
System.out.println(scores[4]);
と、要素の数だけSystem.out.println()を書かないといけません。 でも、for文を使えばスッキリ!
Java
int[] scores = {85, 92, 78, 65, 95};
for (int i = 0; i < scores.length; i++) {
System.out.println(i + "番目の点数は: " + scores[i]);
}
/* 実行結果:
0番目の点数は: 85
1番目の点数は: 92
2番目の点数は: 78
3番目の点数は: 65
4番目の点数は: 95
*/
for文の初期値iを0から始め、scores.length(配列の長さ)より小さい間繰り返すことで、配列の全ての要素に順番にアクセスできます。iがインデックスとして使われているのが分かりますね。

paizaで実行した結果
拡張for文(for-each文)でもっと簡単に!
Javaには、配列やコレクションの要素を順番に処理するのに特化した**「拡張for文(for-each文)」**というものもあります。これを使うと、もっとシンプルに書けるんですよ!
Java
int[] scores = {85, 92, 78, 65, 95};
for (int score : scores) { // scores配列の各要素をscoreという変数に順番に取り出す
System.out.println("点数: " + score);
}
/* 実行結果:
点数: 85
点数: 92
点数: 78
点数: 65
点数: 95
*/
for (データ型 変数名 : 配列名)という形で書きます。 これは「scores配列から要素を一つずつ取り出して、それをscoreという変数に入れてね」という意味になります。インデックスを意識しなくていいので、より直感的に書けますね。

paizaで実行した結果
配列を使うときの注意点!
配列は便利なのですが、いくつか注意しておきたい点があります。
1. 配列の長さは一度決めると変更できない
Javaの配列は、一度宣言して長さを決めてしまうと、後からその長さを変えることはできません。 例えば、int[] numbers = new int[3];と宣言したら、後から要素を4つに増やしたり、2つに減らしたりすることはできません。
もし、要素数が可変のデータを扱いたい場合は、次回以降で学ぶ**「ArrayList」**などのコレクションを使うことになります。
2. 存在しないインデックスにアクセスするとエラー!
これはとっても大事な注意点です! 配列の範囲を超えたインデックスにアクセスしようとすると、ArrayIndexOutOfBoundsExceptionというエラーが発生してプログラムが停止してしまいます。
Java
String[] fruits = {"apple", "banana", "orange"};
System.out.println(fruits[3]); // これはエラーになります!
fruits配列のインデックスは0から2までなので、fruits[3]は存在しない場所を指しています。 配列を使うときは、必ずインデックスの範囲に気をつけましょう!特にfor文を使うときなどは、ループの条件式が正しいか何度も確認するようにしてくださいね。

paizaで実行した結果
まとめ
今回の記事では、「配列」について詳しく解説しました。
- 配列とは、同じ種類のデータをまとめて扱うことができる「データの入れ物」
- 配列を使うことで、たくさんのデータを効率的に管理できる
- 配列の要素には**「インデックス(添字)」**を使ってアクセスし、インデックスは「0」から始まる
- 配列の長さは
配列名.lengthで取得できる for文や拡張for文を使うと、配列の要素を順番に処理できる- 一度決めた配列の長さは変更できない
- 存在しないインデックスにアクセスするとエラーになるので注意!
配列はJavaプログラミングの基本中の基本であり、様々な場面で活用することになります。 最初はインデックスが0から始まることに戸惑うかもしれませんが、たくさんコードを書いて慣れていくうちに、きっと自由自在に使いこなせるようになりますよ!


コメント