Javaの配列を初期化する方法(newを使った作り方)を初心者向けに解説
新人
「先輩、Javaで配列を作るときに初期化ってどうするんですか?」
先輩
「Java 配列では、newキーワードを使って配列を初期化します。宣言だけでは配列は作れますが、実際にメモリ上に箱を確保して値を入れるには初期化が必要です。」
新人
「なるほど、作っただけでは使えないんですね?」
先輩
「そうです。まずは配列の宣言と初期化の基本を理解しておくと、Java 配列を効率よく使えるようになります。」
1. Java 配列とは?
Java 配列は、同じ型の複数のデータを一つにまとめて管理できる構造です。整数型だけ、文字列型だけといった同じ型の値を順番に格納でき、変数を複数用意する手間が省けます。配列を使うことで、データを効率よく操作したり、繰り返し処理を簡単に書いたりできます。
配列は宣言と初期化の2ステップで作成します。宣言では配列の型と名前を指定し、初期化でサイズや初期値を設定してメモリ上に確保します。
public class ArrayExample {
public static void main(String[] args) {
int[] numbers; // 配列の宣言
numbers = new int[5]; // newで初期化して5つ分の箱を用意
}
}
この例では、numbersという整数型配列を宣言し、new int[5]で5つの要素を持つ配列を初期化しています。これで配列の各要素に値を代入できるようになります。
2. 配列の宣言と初期化の基本
配列の宣言は、型と配列名を指定します。例えば、整数型の配列はint[] numbers、文字列型の配列はString[] namesと書きます。その後、newを使って初期化すると、配列に必要な要素数だけメモリが確保されます。
int[] numbers = new int[3]; // 整数型の配列を3つ分用意
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
String[] fruits = new String[2]; // 文字列型の配列を2つ分用意
fruits[0] = "リンゴ";
fruits[1] = "バナナ";
このように、new 配列で初期化した後、array[0]やarray[1]を使って値を代入します。Java 配列では宣言だけでは値を設定できないため、必ず初期化してから使用することが基本です。
Java 配列の初期化を理解すると、後でfor文やfor-each文を使って複数要素を効率よく操作できます。array 宣言と初期化の基本は、Java 配列を扱う上で必須の知識です。
3. newを使った配列の初期化例
Java 配列を初期化する際には、newを使って配列の要素数を指定します。整数型の配列や文字列型の配列など、型に応じて初期化方法が変わります。
int[] scores = new int[4]; // 整数型の配列を4つ分用意
scores[0] = 80;
scores[1] = 90;
scores[2] = 70;
scores[3] = 60;
String[] colors = new String[3]; // 文字列型の配列を3つ分用意
colors[0] = "赤";
colors[1] = "青";
colors[2] = "緑";
このように、配列を宣言した後にnew 配列で初期化し、それぞれの要素に値を代入することで、Java 配列を正しく使うことができます。array 使い方の基本として覚えておきましょう。
4. for文やfor-each文と組み合わせた初期化の応用
配列の要素が多い場合は、for文やfor-each文を使って初期化すると効率的です。for文ではインデックスを使って順番に値を設定できます。
int[] numbers = new int[5];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i * 10; // 0, 10, 20, 30, 40 と順に代入
}
String[] fruits = new String[3];
String[] names = {"リンゴ","バナナ","オレンジ"};
for (int i = 0; i < fruits.length; i++) {
fruits[i] = names[i]; // 別の配列の値を代入
}
for-each文は読み取り専用として便利ですが、配列の初期化や上書きにはインデックス付きのfor文が適しています。配列 初期化の効率を考えると、ループと組み合わせることが有効です。
5. 配列初期化時の注意点
配列を初期化するときには、いくつか注意点があります。まず、サイズ指定を間違えると必要な要素数を確保できません。new int[5]と宣言した場合、配列の長さは5で、インデックスは0から4までです。
int[] numbers = new int[5];
numbers[5] = 100; // ArrayIndexOutOfBoundsException
次に、配列の型に一致した値を代入することが重要です。整数型配列に文字列を代入するとコンパイルエラーになります。常に配列の型と値の型を合わせるようにしましょう。
また、配列の初期化時にnullチェックを怠ると、後で値を代入するときにNullPointerExceptionが発生する場合があります。配列 初期化時は必ずnewでメモリ確保を行うことが安全な使い方です。
6. 配列の初期化の応用例
既存の配列をコピーして新しい配列を作成したり、条件に応じて値を初期化する応用例もあります。例えば、別の配列を元に新しい配列を作る場合はループを使って値をコピーします。
int[] original = {1, 2, 3, 4, 5};
int[] copy = new int[original.length];
for (int i = 0; i < original.length; i++) {
copy[i] = original[i]; // 元の配列の値をコピー
}
条件付き初期化では、特定の条件を満たす場合だけ値を設定することも可能です。例えば、偶数のインデックスにだけ値を代入する場合は次のように書けます。
int[] numbers = new int[6];
for (int i = 0; i < numbers.length; i++) {
if (i % 2 == 0) {
numbers[i] = i * 5;
}
}
このように、配列 初期化を工夫することで、より柔軟にJava 配列を扱うことができます。
7. よくあるミスと回避方法
配列初期化時に初心者が犯しやすいミスには、null配列の操作、サイズ不足、型不一致があります。null配列を使用するとNullPointerExceptionが発生します。
int[] numbers = null;
numbers[0] = 10; // NullPointerException
また、配列のサイズを正しく指定しないとArrayIndexOutOfBoundsExceptionが発生します。初期化時に必ず必要な要素数を確認してnew 配列で確保しましょう。
String[] names = new String[2];
names[2] = "太郎"; // ArrayIndexOutOfBoundsException
型不一致にも注意が必要です。整数型配列に文字列を代入するとコンパイルエラーになるため、配列の型に合った値を設定してください。
8. 配列を安全に初期化するコツ
Java 配列を安全に初期化するためには、まず宣言と初期化を必ずセットで行いましょう。newでメモリを確保してから値を代入することが基本です。
ループを使った初期化では、インデックスが範囲内であることを確認し、条件付きで値を代入する場合は条件式を正しく設定します。また、別の配列からコピーする場合は長さを確認してからコピーすると安全です。
int[] source = {1, 2, 3};
int[] target = new int[source.length];
for (int i = 0; i < target.length; i++) {
target[i] = source[i]; // 安全にコピー
}
これらの方法を守ることで、nullや範囲外アクセスのトラブルを防ぎ、安全にJava 配列を初期化して利用できます。array 安全な使い方として、必ずnew 配列で初期化してから操作する習慣をつけましょう。