0Pricing
Java Academy · Pelajaran

Array Bergerigi dan Pemformatan Tabel

Tangani array 2D bergerigi dan cetak tabel yang sejajar menggunakan lebar setiap kolom; contoh ini membuat matriks sampel tanpa Scanner.

Array Bergerigi dan Pemformatan Tabel adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 6. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 6 pelajaran total.

Konsep Larik Tak Beraturan

Larik 2D tak beraturan: setiap baris dapat memiliki panjang yang berbeda. Perlakukan setiap baris secara terpisah; jangan pernah mengasumsikan jumlah kolom yang sama.

Buat Larik Tak Beraturan

Buat larik tak beraturan dengan mengalokasikan baris-baris yang memiliki panjang berbeda. Pesan ini menjelaskan alasannya: kita hanya memerlukan kolom sebanyak yang dibutuhkan setiap baris.

public class Main {
  public static void main(String[] args) {
    // Create a jagged array with 3 rows of varying lengths
    int[][] m = new int[3][];

    // Row 0 has 2 columns
    m[0] = new int[]{1, 2};

    // Row 1 has 3 columns
    m[1] = new int[]{3, 4, 5};

    // Row 2 has 1 column
    m[2] = new int[]{6};

    // Print the jagged array
    System.out.println("Jagged array contents:");
    for (int r = 0; r < m.length; r++) {
      for (int c = 0; c < m[r].length; c++) {
        System.out.print(m[r][c] + " ");
      }
      System.out.println(); // new line after each row
    }
  }
}

Iterasi dengan Aman

Lakukan iterasi dengan aman menggunakan m[r].length untuk setiap baris. Panjang perulangan dalam dapat berbeda untuk setiap baris.

public class Main {
  public static void main(String[] args) {
    // Example jagged array
    int[][] m = {
      {1, 2},
      {3, 4, 5},
      {6}
    };

    // Safe nested loops for a jagged matrix
    for (int r = 0; r < m.length; r = r + 1) {
      // Always use the actual length of the current row
      for (int c = 0; c < m[r].length; c = c + 1) {
        int value = m[r][c];  // process the value
        System.out.print(value + " ");
      }
      System.out.println(); // new line after each row
    }
  }
}

Lebar Kolom

Untuk mencetak kolom yang rata, hitung lebar setiap kolom yang ada dengan memeriksa semua baris.

// Determine the maximum number of columns among all rows
		int maxCols = 0;
		for (int r = 0; r < m.length; r = r + 1) {
		  if (m[r].length > maxCols) maxCols = m[r].length;
		}

		// For each column, store the maximum string length of values in that column
		int[] w = new int[maxCols];
		for (int r = 0; r < m.length; r = r + 1) {
		  for (int c = 0; c < m[r].length; c = c + 1) {
			int len = Integer.toString(m[r][c]).length();
			if (len > w[c]) w[c] = len;
		  }
		}

Cetak dengan Rata

Tambahkan spasi di sebelah kiri setiap nilai hingga mencapai lebar kolom, lalu cetak baris sebagai satu string.

// Print each row with left-padded columns
		for (int r = 0; r < m.length; r = r + 1) {
		  String line = "";
		  for (int c = 0; c < m[r].length; c = c + 1) {
			String s = Integer.toString(m[r][c]);
			while (s.length() < w[c]) s = " " + s;  // left pad with spaces
			line = line + s + (c + 1 < m[r].length ? " " : "");
		  }
		  System.out.println(line);
		}

Demonstrasi tanpa Masukan

Jalankan: Demonstrasi ini membuat matriks tak beraturan dalam kode, menghitung lebar kolom, dan mencetak tabel yang rata—tanpa memerlukan masukan.

public class Main {
  // Compute per-column widths for a jagged matrix
  static int[] colWidths(int[][] m) {
    int maxCols = 0;
    for (int r = 0; r < m.length; r = r + 1) {
      if (m[r].length > maxCols) maxCols = m[r].length;
    }
    int[] w = new int[maxCols];
    for (int r = 0; r < m.length; r = r + 1) {
      for (int c = 0; c < m[r].length; c = c + 1) {
        int len = Integer.toString(m[r][c]).length();
        if (len > w[c]) w[c] = len;
      }
    }
    // Ensure at least width 1 for each column
    for (int c = 0; c < w.length; c = c + 1) {
      if (w[c] < 1) w[c] = 1;
    }
    return w;
  }

  // Print the matrix with aligned columns
  static void printTable(int[][] m) {
    int[] w = colWidths(m);
    for (int r = 0; r < m.length; r = r + 1) {
      String line = "";
      for (int c = 0; c < m[r].length; c = c + 1) {
        String s = Integer.toString(m[r][c]);
        while (s.length() < w[c]) s = " " + s;
        line = line + s + (c + 1 < m[r].length ? " " : "");
      }
      System.out.println(line);
    }
  }

  public static void main(String[] args) {
    // Sample jagged matrix (no Scanner; values are hard-coded)
    int[][] m = {
      {1, 23, 456},
      {7, 8},
      {90, 12, 3, 4}
    };

    System.out.println("Aligned table:");
    printTable(m);
  }
}

Pemeriksaan Iterasi Tak Beraturan

Pemeriksaan singkat: Perulangan bersarang mana yang melakukan iterasi dengan aman pada setiap elemen dalam matriks tak beraturan?

Rangkuman dan Berikutnya

Rangkuman: Anda telah membuat larik tak beraturan, melakukan iterasi dengan aman menggunakan panjang setiap baris, menghitung lebar kolom, dan mencetak tabel yang rata—tanpa Scanner.

Berikutnya: Jelajahi nilai maksimum per baris/kolom dan transposisi matriks.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Array Bergerigi dan Pemformatan Tabel” gratis?

Ya — teks lengkap “Array Bergerigi dan Pemformatan Tabel” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 6 pelajaran total.

Apa yang akan aku pelajari di “Array Bergerigi dan Pemformatan Tabel”?

Tangani array 2D bergerigi dan cetak tabel yang sejajar menggunakan lebar setiap kolom; contoh ini membuat matriks sampel tanpa Scanner. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Java Academy?

Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 6.

Berapa lama pelajaran “Array Bergerigi dan Pemformatan Tabel” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar Array 2D dan Iterasi Bersarang
  2. Array Bergerigi dan Pemformatan Tabel
  3. Nilai Maksimum Baris/Kolom, Transposisi, dan Pemformatan
  4. Proyek Mini 2D: Buku Nilai
  5. Utilitas 2D sebagai Kelas Pembantu (Pemfaktoran Ulang)
  6. Pembersihan dan Validasi Data 2D
← Kembali ke Java Academy