デジタルトレンドナビ
システム開発

2024.06.17

Javaで配列に要素を追加する方法

Javaで配列に要素を追加する方法

Javaで配列に要素を追加する方法は、初心者にとって重要なスキルの一つです。配列は、同じ型の複数の値を格納するための基本的なデータ構造であり、多くのプログラムで使用されます。しかし、Javaの配列は固定長であり、要素を追加するためには少し工夫が必要です。


本記事では、Javaで配列に要素を追加するための基本的な方法と、より柔軟な動的配列であるArrayListの使用方法について詳しく解説します。具体的なサンプルコードを交えながら説明するので、初心者でも理解しやすくなっています。

配列に要素を追加する基本的な方法

配列に要素を追加するためには、既存の配列の内容を新しい配列にコピーし、新しい要素を追加する方法が一般的です。このセクションでは、手動で配列をコピーして要素を追加する方法を解説します。

既存の配列の要素を手動でコピーする

配列に要素を追加する基本的な方法は、新しい配列を作成し、既存の配列の要素をすべて新しい配列にコピーしてから、新しい要素を追加することです。以下はその具体例です。

java

public class ArrayExample {
    public static void main(String[] args) {
        // 既存の配列
        int[] originalArray = {1, 2, 3};
        
        // 新しい配列を作成(既存の配列より1つ大きい)
        int[] newArray = new int[originalArray.length + 1];
        
        // 既存の配列の要素を新しい配列にコピー
        for (int i = 0; i < originalArray.length; i++) {
            newArray[i] = originalArray[i];
        }
        
        // 新しい要素を追加
        newArray[newArray.length - 1] = 4;
        
        // 結果を表示
        for (int i : newArray) {
            System.out.print(i + " ");
        }
    }
}

上記のコードでは、originalArrayに新しい要素を追加するためにnewArrayを作成し、既存の要素をコピーしてから新しい要素を追加しています。この方法は簡単ですが、配列のサイズが大きくなると効率が悪くなります。

新しい配列を作成して要素を追加する

配列に要素を追加するもう一つの方法は、System.arraycopyメソッドを使用することです。このメソッドは、配列のコピーを効率的に行うことができます。

java

public class ArrayExample {
    public static void main(String[] args) {
        // 既存の配列
        int[] originalArray = {1, 2, 3};
        
        // 新しい配列を作成(既存の配列より1つ大きい)
        int[] newArray = new int[originalArray.length + 1];
        
        // 既存の配列の要素を新しい配列にコピー
        System.arraycopy(originalArray, 0, newArray, 0, originalArray.length);
        
        // 新しい要素を追加
        newArray[newArray.length - 1] = 4;
        
        // 結果を表示
        for (int i : newArray) {
            System.out.print(i + " ");
        }
    }
}

System.arraycopyを使用することで、コードが簡潔になり、コピー操作が効率的に行われます。しかし、これらの方法では配列のサイズを変更するたびに新しい配列を作成しなければならず、非効率です。この問題を解決するために、Javaは動的配列を提供しています。

動的配列を使用した要素の追加

Javaには動的配列であるArrayListという便利なクラスがあります。ArrayListは、要素を動的に追加・削除できるため、配列のサイズを気にする必要がありません。このセクションでは、ArrayListの基本的な使い方と、具体的な例を紹介します。

ArrayListの基本的な使い方

ArrayListは、java.utilパッケージに含まれており、通常の配列と異なり、サイズを動的に変更できます。ArrayListの基本的な操作方法を見てみましょう。

java

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        // ArrayListの作成
        ArrayList<Integer> arrayList = new ArrayList<>();
        
        // 要素の追加
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        
        // 要素の挿入(位置指定)
        arrayList.add(1, 4); // インデックス1の位置に4を追加
        
        // 要素の取得
        int element = arrayList.get(2); // インデックス2の要素を取得
        
        // 要素の削除
        arrayList.remove(1); // インデックス1の要素を削除
        
        // サイズの取得
        int size = arrayList.size();
        
        // 結果を表示
        for (int i : arrayList) {
            System.out.print(i + " ");
        }
    }
}

上記のコードでは、ArrayListの作成、要素の追加、特定の位置への挿入、要素の取得、要素の削除、およびサイズの取得を行っています。ArrayListを使用すると、配列のサイズ変更が容易になるため、非常に便利です。

ArrayListを使った具体例

次に、ArrayListを使った具体的な例を紹介します。以下のコードは、整数のリストを管理し、ユーザーの入力に基づいて要素を追加・削除するシンプルなプログラムです。

java

import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        String command;
        
        while (true) {
            System.out.println("Enter command (add/remove/print/exit):");
            command = scanner.nextLine();
            
            if (command.equals("add")) {
                System.out.println("Enter number to add:");
                int number = scanner.nextInt();
                scanner.nextLine();  // Clear the newline
                numbers.add(number);
            } else if (command.equals("remove")) {
                System.out.println("Enter number to remove:");
                int number = scanner.nextInt();
                scanner.nextLine();  // Clear the newline
                numbers.remove(Integer.valueOf(number));
            } else if (command.equals("print")) {
                System.out.println("Numbers: " + numbers);
            } else if (command.equals("exit")) {
                break;
            } else {
                System.out.println("Invalid command.");
            }
        }
        
        scanner.close();
    }
}

このプログラムでは、ユーザーのコマンドに応じてArrayListに要素を追加、削除、表示する機能を実装しています。これにより、ArrayListの実用的な使用方法を学ぶことができます。

まとめ

Javaで配列に要素を追加する方法について学びました。Javaの標準配列は固定長であり、要素を追加するためには新しい配列を作成して既存の要素をコピーする必要があります。この方法は簡単ですが、効率的ではありません。

そのため、動的配列であるArrayListを使用することをお勧めします。ArrayListは、サイズを動的に変更でき、要素の追加・削除が容易です。また、ArrayListの基本的な操作方法と実践的な例も紹介しました。これにより、配列の操作がより柔軟になり、プログラムの効率性が向上します。

Javaでの配列操作をマスターすることで、プログラムの柔軟性と効率性を高めることができます。配列の操作は多くの場面で必要とされる基本的なスキルであり、今回学んだ内容を基に、さまざまなプログラムに応用してみてください。

 

投稿者

  • デジタルトレンドナビ編集部

    システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。