Menu
Coddy logo textTech

Gängige 2D-Array-Muster

Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 8 von 59.

Bestimmte Muster treten häufig auf, wenn man mit 2D-Arrays arbeitet. Das Erkennen dieser Muster kann Ihnen helfen, Probleme effizienter zu lösen. Hier sind einige gängige Muster:

Diagonale Traversierung

Zugriff auf Elemente, bei denen der Zeilenindex dem Spaltenindex entspricht (matrix[i][i]), gibt Ihnen die Hauptdiagonale. Für die Gegen-Diagonale entspricht die Summe aus Zeilen- und Spaltenindex der Größe des Arrays minus 1 (matrix[i][size - 1 - i]).

Zum Beispiel:

1  2  3
4  5  6
7  8  9

Durchlaufen der Hauptdiagonale (matrix[i][i]): 1, 5, 9
Durchlaufen der Antidiagonale (matrix[i][size - 1 - i]): 3, 5, 7

Randdurchlauf

Um die Rand-Elemente zu durchlaufen, halten Sie einen Index konstant (0 oder size - 1), während Sie über den anderen iterieren.

Um auf die obere Grenze zuzugreifen, iterieren Sie über die Spalten mit dem Zeilenindex fest auf 0.

Zum Beispiel:

1  2  3  4
5  6  7  8
9 10 11 12

Randelemente: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (alle außer 6 und 7)

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode mit dem Namen printPatterns, die ein quadratisches 2D-Array von Ganzzahlen (matrix) als Eingabe nimmt und die folgenden Muster ausgibt:

  1. Hauptdiagonale: Geben Sie alle Elemente aus, bei denen der Zeilenindex dem Spaltenindex entspricht.
  2. Anti-Diagonale: Geben Sie alle Elemente aus, bei denen die Summe der Zeilen- und Spaltenindizes der Größe der Matrix minus 1 entspricht.
  3. Ränder: Geben Sie die Elemente der oberen, unteren, linken und rechten Ränder der Matrix aus.

Die Ausgabe sollte so aussehen:

Main Diagonal: 1 6 11 16 
Anti-Diagonal: 4 7 10 13 
Top Border: 1 2 3 4 
Bottom Border: 13 14 15 16 
Left Border: 1 5 9 13 
Right Border: 4 8 12 16

Spickzettel

Häufige Traversierungs-Muster für 2D-Arrays:

Diagonale Traversierung

Hauptdiagonale: matrix[i][i] (Zeilenindex gleich Spaltenindex)

Gegendiagonale: matrix[i][size - 1 - i] (Summe aus Zeilen- und Spaltenindex gleich size - 1)

1  2  3
4  5  6
7  8  9

Hauptdiagonale: 1, 5, 9
Gegendiagonale: 3, 5, 7

Rand-Traversierung

Einen Index konstant halten (0 oder size - 1), während über den anderen iteriert wird:

  • Oberer Rand: row = 0, Spalten iterieren
  • Unterer Rand: row = size - 1, Spalten iterieren
  • Linker Rand: column = 0, Zeilen iterieren
  • Rechter Rand: column = size - 1, Zeilen iterieren

Probier es selbst

// Schreibe deinen Code nur innerhalb der Klasse. Schreibe keine main() oder Code außerhalb dieser Klasse.
class PrintPatterns {
    public static void printPatterns(int[][] matrix) {
        // Schreibe deinen Code hier
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf