Java | 初心者向け 練習帳(配列表示編)

Java Java
スポンサーリンク

では、これまで作ってきた 配列の文字列表示を中心に、初心者向けに単元別に整理した練習帳 を作ります。
ポイントは:

  • 単元ごとに 概念 → サンプルコード → 練習問題 の順で構成
  • 初心者が読みやすく、手を動かせるように 例題・出力例付き
  • 難易度は 基礎 → 応用 → 実務風 の順

1. 配列の基本と println の落とし穴

概念

  • 配列はオブジェクトなので System.out.println(array)中身ではなく参照 を表示する
  • 参照表示例: [I@15db9742

int[] nums = {1, 2, 3};
System.out.println(nums); // 出力例: [I@xxxxxx
Java

2. 1次元配列の表示:Arrays.toString

概念

  • 1次元配列の中身を確認するには Arrays.toString(array) を使う
  • 文字列として [1, 2, 3] の形式で出力される

import java.util.Arrays;

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

練習問題

  1. double[] prices = {10.5, 20.0, 30.5}; を表示
  2. String[] fruits = {"apple","banana"}; を表示

3. 多次元配列の表示:Arrays.deepToString

概念

  • 2次元以上の配列は Arrays.toString では 子配列が参照で表示 される
  • Arrays.deepToString(array) を使うと ネストした配列も展開 される

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

練習問題

  1. 2×3 の配列を deepToString で表示
  2. ジャグ配列 int[][] jagged = {{1},{2,3},{}} を表示

4. 配列の空・null の扱い

概念

  • 空配列 → []
  • null 配列 → Arrays.toString(null)NullPointerException
  • 安全に表示するには null チェックが必要

int[] empty = new int[0];
System.out.println(Arrays.toString(empty)); // []

int[] arr = null;
System.out.println(arr == null ? "null" : Arrays.toString(arr)); // null
Java

練習問題

  1. 空の String[] を表示
  2. null の int 配列を安全に表示

5. オブジェクト配列の表示

概念

  • オブジェクト配列を toString / deepToString で表示すると、要素の toString() が呼ばれる
  • クラスに toString() をオーバーライドすると分かりやすく表示できる

class Person {
    String name;
    Person(String n){ name=n; }
    public String toString(){ return name; }
}
Person[] people = { new Person("Alice"), new Person("Bob") };
System.out.println(Arrays.toString(people)); // [Alice, Bob]
Java

練習問題

  1. Person クラスを作り、配列を表示
  2. Object 配列に String, Integer を混在させて表示

6. 配列の一部だけ表示

概念

  • Arrays.copyOfRange(array, from, to) で部分配列を作成して表示
  • 大きな配列の一部だけをログ出力する場合に便利

int[] nums = {1,2,3,4,5};
int[] head = Arrays.copyOfRange(nums, 0, 3);
System.out.println(Arrays.toString(head)); // [1, 2, 3]
Java

練習問題

  1. 配列 {10,20,30,40,50} の最初の 2 要素を表示
  2. 2次元配列の最初の行だけを表示

7. 実務での便利ユーティリティ

概念

  • 配列の種類(1次元、2次元、プリミティブ、オブジェクト)を気にせず
  • 安全に文字列化 してログに出力できる関数を作る

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();
}
Java

練習問題

  1. safeArrayToString を使って 1次元 int 配列を出力
  2. 2次元 String 配列を出力
  3. null を出力
  4. Object 配列(String, Integer 混在)を出力

8. 高難度・応用問題

概念

  • 多次元配列、ジャグ配列、3次元以上の配列も同じ原理で出力可能
  • 実務では、ユーザー入力やファイルから読み込んだ配列を表示する際に便利

練習問題

  1. 3次元配列 int[][][] を deepToString で出力
  2. ジャグ配列の各行をループで個別に表示
  3. Object 配列に null を混ぜて safeArrayToString で表示
  4. 配列を文字列化して CSV 形式に変換
  5. ユーザー名配列をログ形式で出力(例: Users: [taro, hanako, jiro]
  6. 商品カテゴリ多次元配列を deepToString で出力

練習帳まとめ(単元別)

単元主な内容サンプルコード練習問題
配列の基本println では中身が見えないSystem.out.println(nums);1,2
1次元配列Arrays.toStringArrays.toString(nums)1,2
多次元配列Arrays.deepToStringArrays.deepToString(matrix)3,4
空・null 配列空配列 [] / null 安全出力null チェック5,6
オブジェクト配列toString() のオーバーライドPerson 配列表示7,8
部分配列Arrays.copyOfRangeArrays.copyOfRange(nums,0,3)9,10
ユーティリティsafeArrayToString汎用関数例11〜14
高難度・応用3次元・ジャグ配列・ログ用deepToString / ループ15〜20

💡 補足

  • 初心者はまず 1次元 → 2次元 → 部分配列 → ジャグ配列 → オブジェクト配列 の順に理解するとスムーズ
  • 実務では safeArrayToString のような汎用関数を作っておくと便利
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました