これまで作った 全 50 問 を、レベル別に整理して 超基礎 → 基礎 → 中級 → 応用 の 4 段階に分けてまとめます。
それぞれに 問題番号・問題・解答 を簡潔に付けて、学習しやすくします。
レベル:超基礎(1〜10)
配列の中身を表示する基本操作、1 次元配列、空配列、null の確認など
| 問題番号 | 内容 | 解答のポイント |
|---|---|---|
| 1 | int[] nums = {5,10,15} の中身を表示 | Arrays.toString(nums) |
| 2 | int[][] matrix = {{1,2},{3,4}} の中身を表示 | Arrays.deepToString(matrix) |
| 3 | Arrays.toString と Arrays.deepToString の違いを確認 | toString は参照、deepToString は展開 |
| 4 | 空配列 new int[0] の出力 | [] |
| 5 | null 配列の安全表示 | arr == null ? "null" : Arrays.toString(arr) |
| 6 | ジャグ配列 int[][] jagged = { {1}, {2,3,4}, {} } の出力 | Arrays.deepToString(jagged) |
| 7 | 部分配列 [1,2,3] の出力 | Arrays.copyOfRange(big,0,3) → Arrays.toString(head) |
| 8 | オブジェクト配列 Person[] を人が読める形で出力 | toString() をオーバーライドする |
| 9 | 1次元配列に deepToString を使うと? | 推奨は toString |
| 10 | 汎用 safeArrayToString メソッドを作る | nullチェック + Object[]/基本型配列分岐 |
レベル:基礎(11〜20)
1〜2次元配列の出力練習、参照と中身の違い、空配列やプリミティブ型の出力
| 問題番号 | 内容 | 解答のポイント |
|---|---|---|
| 11 | int[] a = {5,10,15} | Arrays.toString(a) |
| 12 | String[] names = {"Alice","Bob","Charlie"} | Arrays.toString(names) |
| 13 | int[] x = {1,2,3} を println | 参照アドレスが出る |
| 14 | double[] prices = {10.5,22.0,35.8} | Arrays.toString(prices) |
| 15 | int[][] scores = {{80,90},{70,60}} | Arrays.deepToString(scores) |
| 16 | int[][] values = {{1,2},{3,4}} を toString で出力 | 参照アドレスになる問題 |
| 17 | 1次元配列を println / toString / deepToString で比較 | println は参照、toString は展開、deepToString も可 |
| 18 | 3次元配列を表示 | Arrays.deepToString |
| 19 | 2次元配列を toString で出力 | 子配列は参照表示 |
| 20 | String[][] fruits を deepToString | 内側の配列も展開される |
レベル:中級(21〜35)
ジャグ配列、多次元配列、空配列、異なる型配列、部分配列、オブジェクト配列
| 問題番号 | 内容 | 解答のポイント |
|---|---|---|
| 21 | char[] cs = {'A','B','C'} | Arrays.toString(cs) |
| 22 | boolean[] flags = {true,false,true} | println → 参照表示、toString で展開 |
| 23 | long[] ids = {1001L,1002L,1003L} | Arrays.toString(ids) |
| 24 | 空配列 String[] langs = {} | [] |
| 25 | ジャグ配列 int[][] grid = {{1},{2,3},{4,5,6}} | Arrays.deepToString(grid) |
| 26 | 1次元配列に deepToString を誤使用 | toString に修正 |
| 27 | 3×3 配列の出力 | Arrays.deepToString(arr) |
| 28 | String[][] words = {{"a","b"}, null, {"c","d"}} | null も表示可能 |
| 29 | ユーザー名配列をログ形式で表示 | "Users: " + Arrays.toString(users) |
| 30 | 商品カテゴリの多次元配列表示 | Arrays.deepToString(categories) |
| 31 | float[] temps = {18.5f,20.0f,21.3f} | Arrays.toString(temps) |
| 32 | int[] nums = new int[3]; println | 参照表示 |
| 33 | boolean[] list = {} | [] |
| 34 | String[] colors = {"Red","Blue"} | Arrays.toString(colors) |
| 35 | ジャグ配列 int[][] table = {{},{1},{1,2,3}} | Arrays.deepToString(table) |
レベル:応用(36〜50)
高次元配列、混合型配列、実務風出力、バグ修正、null 対策
| 問題番号 | 内容 | 解答のポイント |
|---|---|---|
| 36 | String[][] data = {{},{A},{B,C}} | deepToString で中身展開 |
| 37 | 誤った配列アクセス arr[0][1] を修正 | int 値か配列か確認 |
| 38 | ログ用タグ配列を表示 | "Tags => " + Arrays.toString(tags) |
| 39 | 顧客情報 2 次元配列を表示 | "Customers: " + Arrays.deepToString(customers) |
| 40 | 3次元配列 cube の中身表示 | Arrays.deepToString(cube) |
| 41 | byte[] bs = {1,2,3} | Arrays.toString(bs) |
| 42 | String s = "Hello"; println(s.toString()) | 出力: Hello |
| 43 | double[] vals = {1.1,2.2}; println | 参照表示 |
| 44 | String[] animals = {"Dog","Cat","Fox"} | Arrays.toString(animals) |
| 45 | 空配列含むジャグ配列 int[][] table = {{},{1},{1,2,3}} | Arrays.deepToString(table) |
| 46 | 2次元配列を toString で表示 → 参照表示になる | deepToString に変更 |
| 47 | String[][] arr = {{“A”},{“B”,”C”}} | toString では参照表示、deepToString で展開 |
| 48 | ログ用タグ配列表示 | "Tags => " + Arrays.toString(tags) |
| 49 | 3次元商品データを表示 | Arrays.deepToString(products) |
| 50 | 混合型 Object[] 配列の表示 | Arrays.deepToString(mixed) → [[1,2],[A,B],Hello] |
これで 全 50 問をレベル別(超基礎 / 基礎 / 中級 / 応用) に整理できました。
💡 メリット:
- 初心者は超基礎から順番に解けば自然に理解できる
- 中級~応用で多次元・ジャグ・オブジェクト配列・混合型までカバー
- 実務風のログ表示問題も含まれているので現場感覚を養える
