Tablice postrzępione i formatowanie tabel
Nauczą się Państwo obsługiwać postrzępione tablice 2D i wyświetlać wyrównane tabele z użyciem szerokości poszczególnych kolumn; demonstracja tworzy przykładową macierz bez użycia Scanner.
Tablice postrzępione i formatowanie tabel to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 2 z 6. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 6 lekcji w sumie.
Koncepcja tablic nieregularnych
Nieregularne tablice 2D: każdy wiersz może mieć inną długość. Należy traktować wiersze oddzielnie i nigdy nie zakładać wspólnej liczby kolumn.
Tworzenie tablicy nieregularnej
Utwórz tablicę nieregularną, przydzielając wierszom różne długości. Komunikat wyjaśnia, dlaczego: potrzebujemy tylko tylu kolumn, ile wymaga każdy wiersz.
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
}
}
}
Bezpieczna iteracja
Iteruj bezpiecznie, używając m[r].length dla każdego wiersza. Długość wewnętrznej pętli może być różna dla poszczególnych wierszy.
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
}
}
}
Szerokości kolumn
Aby wypisać wyrównane kolumny, oblicz szerokość każdej istniejącej kolumny, przeglądając wszystkie wiersze.
// 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;
}
}Wyrównywanie wydruku
Dopełnij każdą wartość z lewej strony, aż osiągnie szerokość kolumny, a następnie wypisz wiersz jako pojedynczy ciąg znaków.
// 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);
}Demonstracja bez danych wejściowych
Uruchom program: Ta demonstracja tworzy w kodzie nieregularną macierz, oblicza szerokości kolumn i wypisuje wyrównaną tabelę — dane wejściowe nie są wymagane.
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);
}
}
Sprawdzenie iteracji po tablicy nieregularnej
Szybkie sprawdzenie: Która zagnieżdżona pętla bezpiecznie przechodzi przez każdy element nieregularnej macierzy?
Podsumowanie i następny krok
Podsumowanie: Utworzyli Państwo tablice nieregularne, bezpiecznie iterowali z użyciem długości poszczególnych wierszy, obliczali szerokości kolumn i wypisywali wyrównane tabele — bez użycia Scanner.
Następny krok: Poznajmy maksima wierszy i kolumn oraz transpozycję macierzy.
Często zadawane pytania
Czy lekcja „Tablice postrzępione i formatowanie tabel” jest bezpłatna?
Tak — pełny tekst „Tablice postrzępione i formatowanie tabel” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 6 lekcji w sumie.
Co nauczysz się w „Tablice postrzępione i formatowanie tabel”?
Nauczą się Państwo obsługiwać postrzępione tablice 2D i wyświetlać wyrównane tabele z użyciem szerokości poszczególnych kolumn; demonstracja tworzy przykładową macierz bez użycia Scanner. Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 6.
Ile czasu zajmuje lekcja „Tablice postrzępione i formatowanie tabel”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy tablic 2D i zagnieżdżona iteracja
- Tablice postrzępione i formatowanie tabel
- Maksima wierszy i kolumn, transpozycja i formatowanie
- Projekt 2D: dziennik ocen
- Narzędzia 2D jako klasa pomocnicza (refaktoryzacja)
- Czyszczenie i walidacja danych 2D