Java の配列の要素を変更する方法(値の上書き)
新人
「Java で配列の値を変更するにはどうすればいいですか?」
先輩
「配列は一度作成するとサイズは変えられないけど、要素の値は自由に上書きできるよ。」
新人
「どうやって値を上書きするんですか?」
先輩
「それでは、基本的な方法から見ていこう!」
1. Java の配列とは?(基本的な説明)
Java の配列とは、同じ種類のデータを複数まとめて管理するための仕組みです。配列を使うと、たくさんのデータを一つの変数で扱うことができます。
例えば、テストの点数を管理する場合、複数の点数を変数にまとめることができます。
配列の基本構文
public class ArrayExample {
public static void main(String[] args) {
// 5つの整数を格納する配列を作成
int[] scores = {80, 90, 75, 60, 85};
// 配列の中身を表示
System.out.println("1つ目の点数: " + scores[0]);
}
}
1つ目の点数: 80
2. 配列の要素を変更する基本的な方法
配列の要素を変更するには、要素の番号(インデックス)を指定して、新しい値を代入します。
配列の値を変更する方法
public class ModifyArray {
public static void main(String[] args) {
// 配列を作成
int[] scores = {80, 90, 75, 60, 85};
// 2つ目の要素を変更
scores[1] = 95;
// 変更後の配列を表示
System.out.println("変更後の点数: " + scores[1]);
}
}
変更後の点数: 95
このように、インデックスを指定することで配列の要素を自由に変更できます。
3. 配列の要素を変更する具体的な手順
配列の要素を変更するには、インデックス番号を指定 して新しい値を代入します。Java では、配列のインデックスは0 から始まるので注意してください。
配列の値を変更する手順
以下の手順で配列の値を変更できます。
- 1. 配列を作成する
- 2. 変更したい要素のインデックスを指定する
- 3. 新しい値を代入する
具体的なコード例
public class ModifyArrayExample {
public static void main(String[] args) {
// 配列の作成
int[] numbers = {10, 20, 30, 40, 50};
// 配列の変更前の値を表示
System.out.println("変更前の値: " + numbers[2]);
// 配列の要素を変更
numbers[2] = 99;
// 配列の変更後の値を表示
System.out.println("変更後の値: " + numbers[2]);
}
}
変更前の値: 30
変更後の値: 99
このように、numbers[2] = 99; のように記述することで、配列の要素を変更できます。
4. 配列の値をループで一括変更する方法
配列のすべての値を変更する場合、ループを使うと効率的です。特に for 文を使うと、配列のすべての要素を一括で変更できます。
for 文を使った一括変更の例
public class ModifyArrayLoop {
public static void main(String[] args) {
// 配列の作成
int[] numbers = {1, 2, 3, 4, 5};
// 変更前の配列を表示
System.out.print("変更前: ");
for (int num : numbers) {
System.out.print(num + " ");
}
System.out.println();
// すべての要素を 10 増やす
for (int i = 0; i < numbers.length; i++) {
numbers[i] += 10;
}
// 変更後の配列を表示
System.out.print("変更後: ");
for (int num : numbers) {
System.out.print(num + " ");
}
}
}
変更前: 1 2 3 4 5
変更後: 11 12 13 14 15
このように、for 文を使うと、配列のすべての要素を一度に変更することができます。
5. 配列の値を条件で変更する方法
配列の値を条件に応じて変更したい場合は、if 文 を組み合わせることで特定の要素だけを変更できます。
偶数だけを変更する例
public class ModifyArrayCondition {
public static void main(String[] args) {
// 配列の作成
int[] numbers = {3, 8, 12, 5, 7};
// 変更前の配列を表示
System.out.print("変更前: ");
for (int num : numbers) {
System.out.print(num + " ");
}
System.out.println();
// 偶数の要素だけを2倍にする
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
numbers[i] *= 2;
}
}
// 変更後の配列を表示
System.out.print("変更後: ");
for (int num : numbers) {
System.out.print(num + " ");
}
}
}
変更前: 3 8 12 5 7
変更後: 3 16 24 5 7
このように、if (numbers[i] % 2 == 0) を使うことで、偶数だけを2倍に変更することができます。
6. 配列の要素を変更するときの注意点
配列の要素を変更する際には、いくつかの重要なポイントを理解しておく必要があります。
① 存在しないインデックスを指定しない
Java の配列は固定サイズなので、存在しないインデックスを指定するとエラーになります。
public class ArrayIndexError {
public static void main(String[] args) {
int[] numbers = {10, 20, 30};
// 配列の範囲外の要素にアクセス(エラー発生)
numbers[3] = 40; // 存在しないインデックス
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
配列の長さは numbers.length を使って確認し、範囲外のインデックスを使わないようにしましょう。
② 配列のサイズを変更できない
Java の配列は一度作成するとサイズを変更できません。サイズを変更したい場合は、新しい配列を作り、データをコピーする必要があります。
import java.util.Arrays;
public class ResizeArray {
public static void main(String[] args) {
int[] numbers = {10, 20, 30};
// 新しい配列を作成
numbers = Arrays.copyOf(numbers, 5);
System.out.println("配列の長さ: " + numbers.length);
}
}
配列の長さ: 5
このように、配列のサイズを変更したい場合は、新しい配列を作成してデータを移行する必要があります。
7. 配列の値を変更する実践的な例(ユーザー入力なしで)
実際に配列の値を変更する方法を、具体的な例を使って説明します。ここでは、学生のテストの点数を更新するプログラムを作成します。
例: 学生のテストの点数を更新
public class StudentScores {
public static void main(String[] args) {
// 学生のテスト点数
int[] scores = {70, 85, 90, 78, 88};
System.out.print("変更前の点数: ");
for (int score : scores) {
System.out.print(score + " ");
}
System.out.println();
// 2番目の学生の点数を修正
scores[1] = 95;
// 4番目の学生の点数を修正
scores[3] = 80;
System.out.print("変更後の点数: ");
for (int score : scores) {
System.out.print(score + " ");
}
}
}
変更前の点数: 70 85 90 78 88
変更後の点数: 70 95 90 80 88
このように、特定のインデックスを指定して要素を変更することで、プログラムの中でデータを更新できます。
8. 練習問題:「配列の値を変更するコードを書こう」
以下の練習問題に挑戦して、配列の要素を変更する方法をしっかり理解しましょう。
問題: 配列の値を変更するプログラムを作成しよう
以下の仕様を満たす Java プログラムを作成してください。
- 1. 配列
int[] prices = {120, 250, 300, 150, 500};を作成する。 - 2. 3 番目の値を 280 に変更する。
- 3. 5 番目の値を 450 に変更する。
- 4. 配列の変更前と変更後の値を表示する。
解答例
public class ModifyPrices {
public static void main(String[] args) {
// 商品の価格リスト
int[] prices = {120, 250, 300, 150, 500};
// 変更前の価格を表示
System.out.print("変更前の価格: ");
for (int price : prices) {
System.out.print(price + " ");
}
System.out.println();
// 3番目と5番目の値を変更
prices[2] = 280;
prices[4] = 450;
// 変更後の価格を表示
System.out.print("変更後の価格: ");
for (int price : prices) {
System.out.print(price + " ");
}
}
}
変更前の価格: 120 250 300 150 500
変更後の価格: 120 250 280 150 450
この問題を実際にコーディングして、配列の要素を変更する方法を練習しましょう。