Java | Java初心者向け 配列操作 総まとめ教材

Java Java
スポンサーリンク

では、Java初心者向け「配列操作 総まとめ教材」 を作ります。
対象は これから配列を学ぶ人 で、1次元・2次元・多次元・ArrayList・表示方法・よくある間違い を全部まとめた教材です。
例題・図解・注意点・練習問題付きで作ります。


1. 配列とは

  • 複数の同じ型のデータをまとめて扱える変数。
  • インデックス で個別の値にアクセス。
  • Javaでは固定長。
int[] numbers = {10, 20, 30};
System.out.println(numbers[0]); // 10
Java

⚠ 注意

  • 配列のインデックスは 0から始まる
  • 範囲外アクセス → ArrayIndexOutOfBoundsException

2. 配列の初期化

int[] a = new int[3];         // 要素は 0 で初期化
int[] b = {1,2,3};            // 宣言と同時に値を設定
int[] c;                      
c = new int[]{4,5,6};         // 後で代入
Java

3. 配列の操作

(1) 値の代入

int[] a = new int[3];
a[0] = 10;
a[1] = 20;
Java

(2) 配列の長さ

System.out.println(a.length); // 3
Java

(3) 配列の合計

int sum = 0;
for(int i=0;i<a.length;i++){
    sum += a[i];
}
Java

4. 配列の表示

(1) 1次元配列

int[] arr = {1,2,3};
System.out.println(Arrays.toString(arr)); // [1, 2, 3]
Java

(2) 2次元・多次元配列

int[][] matrix = {{1,2},{3,4}};
System.out.println(Arrays.deepToString(matrix)); // [[1, 2], [3, 4]]
Java

⚠ 間違いやすいポイント

  • System.out.println(matrix); → 参照アドレスが表示される
  • Arrays.toString(matrix) → 子配列はアドレス表示される

5. 2次元配列・ジャグ配列

(1) 2次元配列

int[][] grid = new int[2][3]; // 2行3列
grid[0][0] = 1;
Java

(2) ジャグ配列(行ごとに長さが異なる)

int[][] jagged = new int[2][];
jagged[0] = new int[1];
jagged[1] = new int[3];
Java

6. ArrayListとの組み合わせ

ArrayList<int[]> list = new ArrayList<>();
list.add(new int[]{1,2,3});
System.out.println(Arrays.toString(list.get(0))); // [1,2,3]
Java

⚠ 注意

  • ArrayListはサイズ可変
  • ArrayList内の配列も参照扱い → shallow copy に注意

7. 配列コピー

(1) System.arraycopy

int[] src = {1,2,3};
int[] dest = new int[3];
System.arraycopy(src,0,dest,0,src.length);
Java

(2) Arrays.copyOf

int[] copy = Arrays.copyOf(src, src.length);
Java

8. よくあるバグ

状況原因修正方法
配列を直接 printlnアドレス表示Arrays.toString / deepToString
配列範囲外アクセスインデックスミスa.length – 1以内でアクセス
null 配列NullPointerException配列を new してから操作
多次元配列 + toString子配列がアドレス表示Arrays.deepToString

9. 練習問題(初心者向け)

  1. int[] nums = {1,2,3}; の 2 番目の値を表示せよ
  2. 2次元配列 int[][] a = {{1,2},{3,4}}; の合計を求めよ
  3. 配列 [1,2,3,4,5] を逆順に表示せよ
  4. ArrayList 内の int[] を for 文ですべて表示せよ
  5. ジャグ配列 int[2][] に値を設定して表示せよ

10. 練習問題解答例(抜粋)

// 1
System.out.println(nums[1]);

// 2
int sum=0;
for(int i=0;i<a.length;i++){
    for(int j=0;j<a[i].length;j++){
        sum += a[i][j];
    }
}
System.out.println(sum);

// 3
int[] arr = {1,2,3,4,5};
for(int i=arr.length-1;i>=0;i--){
    System.out.print(arr[i]+" ");
}

// 4
ArrayList<int[]> list = new ArrayList<>();
list.add(new int[]{1,2});
for(int[] e:list){
    System.out.println(Arrays.toString(e));
}

// 5
int[][] jagged = new int[2][];
jagged[0] = new int[]{1};
jagged[1] = new int[]{2,3};
System.out.println(Arrays.deepToString(jagged));
Java

11. まとめ

  • 配列操作は インデックス管理と型 が基本
  • 多次元配列や ArrayList と組み合わせると 間違いやすい
  • Arrays.toString / Arrays.deepToString で表示
  • 練習問題で手を動かすことが上達のコツ

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました