Tatasusunan Tidak Sekata dan Pemformatan Jadual
Kendalikan tatasusunan 2D tidak sekata dan cetak jadual sejajar menggunakan lebar setiap lajur; tunjuk cara ini membina matriks contoh tanpa Scanner.
Tatasusunan Tidak Sekata dan Pemformatan Jadual ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 6. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 6 pelajaran.
Konsep Tidak Sekata
Tatasusunan 2D tidak sekata: setiap baris boleh mempunyai panjang yang berbeza. Kendalikan baris secara berasingan dan jangan sekali-kali menganggap terdapat bilangan lajur yang sama.
Cipta Tatasusunan Tidak Sekata
Cipta tatasusunan tidak sekata dengan memperuntukkan baris yang mempunyai panjang berbeza. Mesej ini menerangkan sebabnya: kita hanya memerlukan sebanyak lajur yang diperlukan oleh 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
}
}
}
Lelaran Selamat
Lakukan lelaran dengan selamat menggunakan m[r].length untuk setiap baris. Panjang gelung dalam mungkin berbeza bagi 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 Lajur
Untuk mencetak lajur yang dijajarkan, kira lebar bagi setiap lajur yang wujud dengan mengimbas 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;
}
}Cetakan Dijajarkan
Tambahkan ruang di sebelah kiri setiap nilai sehingga mencapai lebar lajur, kemudian cetak baris itu sebagai satu rentetan.
// 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 membina matriks tidak sekata dalam kod, mengira lebar lajur dan mencetak jadual yang dijajarkan—tiada masukan diperlukan.
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);
}
}
Semakan Lelaran Tidak Sekata
Semakan ringkas: Gelung bersarang yang manakah melakukan lelaran dengan selamat terhadap setiap elemen dalam matriks tidak sekata?
Ringkasan & Seterusnya
Ringkasan: Anda telah mencipta tatasusunan tidak sekata, melakukan lelaran dengan selamat menggunakan panjang setiap baris, mengira lebar lajur dan mencetak jadual yang dijajarkan—tanpa Scanner.
Seterusnya: Terokai nilai maksimum baris/lajur dan transposisi matriks.
Pelajari Java dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 104
- Pelajaran
- 374
Soalan Lazim
Adakah pelajaran “Tatasusunan Tidak Sekata dan Pemformatan Jadual” percuma?
Ya — teks penuh “Tatasusunan Tidak Sekata dan Pemformatan Jadual” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 6 pelajaran.
Apakah yang akan saya pelajari dalam “Tatasusunan Tidak Sekata dan Pemformatan Jadual”?
Kendalikan tatasusunan 2D tidak sekata dan cetak jadual sejajar menggunakan lebar setiap lajur; tunjuk cara ini membina matriks contoh tanpa Scanner. Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Java Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 6.
Berapa lamakah pelajaran “Tatasusunan Tidak Sekata dan Pemformatan Jadual” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Asas Tatasusunan 2D dan Lelaran Bersarang
- Tatasusunan Tidak Sekata dan Pemformatan Jadual
- Nilai Maksimum Baris/Lajur, Transposisi dan Pemformatan
- Projek Mini 2D: Buku Gred
- Utiliti 2D sebagai Kelas Pembantu (Pemfaktoran Semula)
- Pembersihan dan Pengesahan Data 2D