Javaにおける配列の基本操作とメモリ管理

配列の概念と特性

配列(Array)は、同一データ型の複数の値を格納するためのコンテナです。データ格納時には暗黙的な型変換を考慮する必要があります。

配列の宣言方法

形式1:データ型[] 配列名

int[] numbers;

形式2:データ型 配列名[]

int numbers[];

静的初期化

int[] numbers = new int[]{10, 20, 30, 40};
// 簡略化形式
int[] values = {15, 25, 35, 45};

動的初期化

int[] scores = new int[5];
scores[0] = 95;
scores[1] = 80;

配列要素へのアクセス

public class ArrayAccessExample {
    public static void main(String[] args) {
        int[] data = {10, 20, 30, 40, 50};
        
        // 要素の取得
        int value = data[2];
        System.out.println(value); // 30
        
        // 要素の変更
        data[2] = 35;
        System.out.println(data[2]); // 35
    }
}

配列の走査

public class ArrayTraversal {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        
        for (int index = 0; index < numbers.length; index++) {
            System.out.println(numbers[index]);
        }
    }
}

実践的な例題

最大値の検索

public class FindMaximum {
    public static void main(String[] args) {
        int[] values = {33, 5, 22, 44, 55};
        int maximum = values[0];
        
        for (int i = 1; i < values.length; i++) {
            if (values[i] > maximum) {
                maximum = values[i];
            }
        }
        System.out.println("最大値: " + maximum);
    }
}

要素の反転

public class ReverseArray {
    public static void main(String[] args) {
        int[] original = {1, 2, 3, 4, 5};
        
        for (int start = 0, end = original.length - 1; 
             start < end; start++, end--) {
            int temporary = original[start];
            original[start] = original[end];
            original[end] = temporary;
        }
        
        for (int element : original) {
            System.out.print(element + " ");
        }
    }
}

メモリ管理と注意点

配列は作成後に長さを変更できません。不正なインデックスへのアクセスはArrayIndexOutOfBoundsExceptionを引き起こします。

int[] arr = new int[5];
System.out.println(arr[5]); // 実行時エラー

初期化方式の選択基準

  • 静的初期化:具体的なデータが明確な場合
  • 動的初期化:要素数は明確だがデータが未定の場合

タグ: Java 配列 データ構造 メモリ管理 アルゴリズム

8月17日 11:15 投稿