では、先ほどの練習帳を 単元ごとに「例題 → 練習問題 → 解答」ページ形式 に整理した形で作ります。
これにより、学習の流れが見えやすく、手を動かして確認しやすい形式 になります。
ここではサンプルとして 「配列の文字列表示」単元 を完全版で作ります。
単元1:1次元配列の表示(Arrays.toString)
例題1-1
import java.util.Arrays;
int[] nums = {1, 2, 3};
System.out.println(Arrays.toString(nums));
Java出力
[1, 2, 3]
解説:1次元配列は Arrays.toString を使うと中身を確認できる。
練習問題1-1
double[] prices = {10.5, 20.0, 30.5};
// 配列の中身を表示してください
Java練習問題1-2
String[] fruits = {"apple", "banana"};
// 配列の中身を表示してください
Java解答1
System.out.println(Arrays.toString(prices)); // [10.5, 20.0, 30.5]
System.out.println(Arrays.toString(fruits)); // [apple, banana]
Java単元2:多次元配列の表示(Arrays.deepToString)
例題2-1
int[][] matrix = {{1,2},{3,4}};
System.out.println(Arrays.deepToString(matrix));
Java出力
[[1, 2], [3, 4]]
解説:2次元以上の配列は deepToString で展開される。
練習問題2-1
int[][] scores = {
{80, 90},
{70, 60}
};
// 配列の中身を表示してください
Java練習問題2-2
int[][] jagged = { {1}, {2,3,4}, {} };
// 配列の中身を表示してください
Java解答2
System.out.println(Arrays.deepToString(scores)); // [[80, 90], [70, 60]]
System.out.println(Arrays.deepToString(jagged)); // [[1], [2, 3, 4], []]
Java単元3:空・null 配列の扱い
例題3-1
int[] empty = new int[0];
System.out.println(Arrays.toString(empty));
Java出力
[]
例題3-2(null 配列)
int[] arr = null;
System.out.println(arr == null ? "null" : Arrays.toString(arr));
Java出力
null
練習問題3-1
空の String 配列を表示
練習問題3-2
null の int 配列を安全に表示
解答3
String[] emptyStrings = new String[0];
System.out.println(Arrays.toString(emptyStrings)); // []
int[] nullArray = null;
System.out.println(nullArray == null ? "null" : Arrays.toString(nullArray)); // null
Java単元4:オブジェクト配列の表示
例題4-1
class Person {
String name;
Person(String n){ name=n; }
@Override
public String toString(){ return name; }
}
Person[] people = { new Person("Alice"), new Person("Bob") };
System.out.println(Arrays.toString(people));
Java出力
[Alice, Bob]
解説:オブジェクト配列は toString() が呼ばれる。
オーバーライドすると見やすくなる。
練習問題4-1
Person クラス配列を作って表示
練習問題4-2
Object 配列に String と Integer を混在させて表示
解答4
Person[] people2 = { new Person("Charlie"), new Person("Diana") };
System.out.println(Arrays.toString(people2)); // [Charlie, Diana]
Object[] mixed = {"Hello", 100, 3.14};
System.out.println(Arrays.toString(mixed)); // [Hello, 100, 3.14]
Java単元5:配列の一部表示(部分配列)
例題5-1
int[] nums = {1,2,3,4,5};
int[] head = Arrays.copyOfRange(nums, 0, 3);
System.out.println(Arrays.toString(head));
Java出力
[1, 2, 3]
練習問題5-1
配列 {10,20,30,40,50} の最初の 2 要素を表示
練習問題5-2
2次元配列の最初の行だけを表示
解答5
int[] part = Arrays.copyOfRange(new int[]{10,20,30,40,50}, 0, 2);
System.out.println(Arrays.toString(part)); // [10, 20]
int[][] mat = {{1,2,3},{4,5,6}};
System.out.println(Arrays.toString(mat[0])); // [1, 2, 3]
Java単元6:安全に配列を文字列化するユーティリティ
例題6-1
public static String safeArrayToString(Object obj) {
if(obj == null) return "null";
if(obj instanceof Object[]) return Arrays.deepToString((Object[])obj);
if(obj instanceof int[]) return Arrays.toString((int[])obj);
// 他の基本型も同様
return obj.toString();
}
System.out.println(safeArrayToString(new int[]{1,2,3})); // [1, 2, 3]
System.out.println(safeArrayToString(null)); // null
Java練習問題6-1
1次元 int 配列を safeArrayToString で出力
練習問題6-2
2次元 String 配列を safeArrayToString で出力
解答6
System.out.println(safeArrayToString(new int[]{5,6,7})); // [5, 6, 7]
System.out.println(safeArrayToString(new String[][]{{"A","B"},{"C","D"}})); // [[A, B], [C, D]]
Java単元7:高難度・応用
練習問題7-1
3次元配列を deepToString で表示
練習問題7-2
Object 配列に null を混ぜて safeArrayToString で表示
練習問題7-3
ユーザー名配列をログ形式で表示
String[] users = {"taro","hanako","jiro"};
// Users: [taro, hanako, jiro]
Java練習問題7-4
商品カテゴリ多次元配列を deepToString で出力
解答7
int[][][] cube = {{{1,1},{2,2}},{{3,3},{4,4}}};
System.out.println(Arrays.deepToString(cube)); // [[[1, 1], [2, 2]], [[3, 3], [4, 4]]]
Object[] mix = {"Hello", null, 42};
System.out.println(safeArrayToString(mix)); // [Hello, null, 42]
String[] users = {"taro","hanako","jiro"};
System.out.println("Users: " + Arrays.toString(users)); // Users: [taro, hanako, jiro]
String[][] categories = {{"Food","Drink"},{"Clothes","Shoes"}};
System.out.println(Arrays.deepToString(categories)); // [[Food, Drink], [Clothes, Shoes]]
Javaこの形式で作れば、1ページ=単元単位で「例題→問題→解答」 が整理され、
初心者でも順に読み進めながら 手を動かして理解できる 練習帳になります。

