Java | 「配列+ArrayList+多次元配列+toString / deepToString」総合バグ修正問題集

Java
スポンサーリンク

では今回は、「配列+ArrayList+多次元配列+toString / deepToString」総合バグ修正問題集(50問)」 を紹介します。
初心者~中級者向けに、「間違いを見つけて修正する形式」 に統合します。

基礎(1~10問)

問題 1

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

❌ 間違い

配列を直接出力 → アドレス表示

✅ 修正

System.out.println(Arrays.toString(arr));
Java

問題 2

String[] names = {"A","B"};
System.out.println(Arrays.deepToString(names));
Java

❌ 間違い

一次元配列 → deepToString は冗長

✅ 修正

System.out.println(Arrays.toString(names));
Java

問題 3

int[] nums;
nums[0] = 10;
Java

❌ 間違い

配列未初期化 → NullPointerException

✅ 修正

int[] nums = new int[3];
nums[0] = 10;
Java

問題 4

int[] a = {1,2,3};
System.out.println(a.length());
Java

❌ 間違い

length はプロパティ → メソッドではない

✅ 修正

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

問題 5

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

❌ 間違い

多次元配列 → toString では子配列の中身が見えない

✅ 修正

System.out.println(Arrays.deepToString(table));
Java

問題 6

int[] a = {1,2,3};
System.out.println(a[3]);
Java

❌ 間違い

範囲外アクセス → IndexOutOfBounds

✅ 修正

System.out.println(a[2]);
Java

問題 7

int[][] arr = new int[2][2];
arr[1][2] = 5;
Java

❌ 間違い

列インデックス 2 は存在しない

✅ 修正

arr[1][1] = 5;
Java

問題 8

int[][] arr = {{1,2},{3,4}};
for(int i=0;i<=arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        System.out.println(arr[i][j]);
    }
}
Java

❌ 間違い

i <= arr.length → 範囲外アクセス

✅ 修正

for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        System.out.println(arr[i][j]);
    }
}
Java

問題 9

int[][] arr = new int[2][];
arr[0][0] = 1;
Java

❌ 間違い

arr[0] が null → NullPointerException

✅ 修正

arr[0] = new int[1];
arr[0][0] = 1;
Java

問題 10

int[][] arr = {{1,2},{3,4,5}};
for(int i=0;i<arr.length;i++){
    for(int j=0;j<3;j++){
        System.out.println(arr[i][j]);
    }
}
Java

❌ 間違い

arr[0] の長さは2 → arr[0][2] は範囲外

✅ 修正

for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        System.out.println(arr[i][j]);
    }
}
Java

ArrayList(11~20問)

問題 11

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

❌ 間違い

配列の index 2 は存在しない

✅ 修正

System.out.println(list.get(0)[1]);
Java

問題 12

ArrayList<String[]> data = new ArrayList<>();
data.add(new String[]{"A","B"});
System.out.println(Arrays.toString(data.get(0)[1]));
Java

❌ 間違い

data.get(0)[1] は String → 配列ではない

✅ 修正

System.out.println(data.get(0)[1]);
Java

問題 13

ArrayList<int[]> list = new ArrayList<>();
list.get(0)[0] = 10;
Java

❌ 間違い

list が空 → IndexOutOfBounds

✅ 修正

list.add(new int[1]);
list.get(0)[0] = 10;
Java

問題 14

ArrayList<int[]> list = new ArrayList<>();
list.add(new int[]{1,2});
System.out.println(Arrays.deepToString(list.toArray()));
Java

❌ 間違い

toArray() は Object[] → deepToString でも int[] は展開されない

✅ 修正

for(int[] a : list){
    System.out.println(Arrays.toString(a));
}
Java

問題 15

ArrayList<int[]> list = new ArrayList<>(3);
System.out.println(list.get(0));
Java

❌ 間違い

容量 3 は空リスト → IndexOutOfBounds

✅ 修正

list.add(new int[]{0});
System.out.println(list.get(0)[0]);
Java

問題 16

ArrayList<int[]> list = new ArrayList<>();
list.add(new int[2]);
System.out.println(list.get(0).length());
Java

❌ 間違い

配列 length はプロパティ → メソッドではない

✅ 修正

System.out.println(list.get(0).length);
Java

問題 17

ArrayList<int[]> list = new ArrayList<>();
for(int[] a : list){
    a[0] = 1;
}
Java

❌ 間違い

list が空 → ループ未実行

✅ 修正

list.add(new int[1]);
for(int[] a : list){
    a[0] = 1;
}
Java

問題 18

ArrayList<int[]> list = new ArrayList<>();
list.add(null);
System.out.println(list.get(0)[0]);
Java

❌ 間違い

null → NullPointerException

✅ 修正

list.set(0,new int[1]);
System.out.println(list.get(0)[0]);
Java

問題 19

ArrayList<int[]> list = new ArrayList<>();
list.add(new int[]{1,2});
list.remove(1);
Java

❌ 間違い

IndexOutOfBounds → 要素は1個のみ

✅ 修正

list.remove(0);
Java

問題 20

ArrayList<int[]> list = new ArrayList<>();
list.add(new int[]{1,2});
System.out.println(list);
Java

❌ 間違い

Object[] 表示 → int[] の中身は見えない

✅ 修正

for(int[] a : list){
    System.out.println(Arrays.toString(a));
}
Java

多次元+ArrayList(21~30問)

問題 21

ArrayList<int[][]> list = new ArrayList<>();
list.add(new int[2][2]);
System.out.println(Arrays.toString(list.get(0)));
Java

❌ 間違い

2次元配列 → toString は参照表示

✅ 修正

System.out.println(Arrays.deepToString(list.get(0)));
Java

問題 22

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

❌ 間違い

arr[1] の長さは2 → index 2 は存在しない

✅ 修正

System.out.println(list.get(0)[1][1]);
Java

問題 23

ArrayList<int[][]> list = new ArrayList<>();
list.get(0)[0][0] = 1;
Java

❌ 間違い

list が空 → IndexOutOfBounds

✅ 修正

list.add(new int[1][1]);
list.get(0)[0][0] = 1;
Java

問題 24

ArrayList<int[][]> list = new ArrayList<>();
list.add(new int[2][2]);
System.out.println(Arrays.toString(list.toArray()));
Java

❌ 間違い

toArray() → Object[] → int[][] の中身は表示されない

✅ 修正

for(int[][] a : list){
    System.out.println(Arrays.deepToString(a));
}
Java

問題 25

ArrayList<int[][]> list = new ArrayList<>();
int[][] arr = new int[2][];
arr[0][0] = 1;
Java

❌ 間違い

arr[0] が null → NullPointerException

✅ 修正

arr[0] = new int[1];
arr[0][0] = 1;
Java

問題 26

ArrayList<int[][]> list = new ArrayList<>();
list.add(new int[2][2]);
System.out.println(list.get(0)[2][0]);
Java

❌ 間違い

行インデックス 2 は存在しない

✅ 修正

System.out.println(list.get(0)[1][0]);
Java

問題 27

ArrayList<int[][]> list = new ArrayList<>();
list.add(new int[2][2]);
System.out.println(list.get(0).length());
Java

❌ 間違い

length はプロパティ → メソッドではない

✅ 修正

System.out.println(list.get(0).length);
Java

問題 28

ArrayList<int[][]> list = new ArrayList<>();
list.add(new int[2][2]);
System.out.println(Arrays.toString(list.get(0)[0]));
Java

❌ 間違い

一次元配列 → toString では中身は参照表示

✅ 修正

System.out.println(Arrays.toString(list.get(0)[0]));
Java

※ この場合 toString で OK(配列1次元)


問題 29

ArrayList<int[][]> list = new ArrayList<>();
list.add(null);
System.out.println(Arrays.deepToString(list.get(0)));
Java

❌ 間違い

null → NullPointerException

✅ 修正

list.set(0,new int[1][1]);
System.out.println(Arrays.deepToString(list.get(0)));
Java

問題 30

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

❌ 間違い

2次元配列 → toString は参照表示

✅ 修正

System.out.println(Arrays.deepToString(list.get(0)));
Java
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました