Gängige 2D-Array-Muster
Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 8 von 59.
Bestimmte Muster treten beim Arbeiten mit 2D-Arrays häufig auf. Das Erkennen dieser Muster kann Ihnen helfen, Probleme effizienter zu lösen. Hier sind einige häufige Muster:
Diagonale Traversierung
Der Zugriff auf Elemente, bei denen der Zeilenindex gleich dem Spaltenindex ist (matrix[i][i]), liefert Ihnen die Hauptdiagonale. Für die Anti-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 9Durchlaufen der Hauptdiagonale (matrix[i][i]): 1, 5, 9
Durchlaufen der Antidiagonale (matrix[i][size - 1 - i]): 3, 5, 7
Border-Durchlauf
Um die Border-Elemente zu durchlaufen, halten Sie einen Index konstant (0 oder size - 1), während Sie über den anderen iterieren.
Um auf den oberen Rand zuzugreifen, iterieren Sie über die Spalten, wobei der Zeilenindex auf 0 fixiert ist.
Zum Beispiel:
1 2 3 4
5 6 7 8
9 10 11 12Randelemente: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (alle außer 6 und 7)
Aufgabe
EinfachErstelle eine Methode namens printPatterns, die ein quadratisches 2D-Array von Ganzzahlen (matrix) als Eingabe entgegennimmt und die folgenden Muster ausgibt:
- Main Diagonal: Gib alle Elemente aus, bei denen der Zeilenindex gleich dem Spaltenindex ist.
- Anti-Diagonal: Gib alle Elemente aus, bei denen die Summe von Zeilen- und Spaltenindex gleich der Größe der Matrix minus 1 ist.
- Borders: Gib die Elemente der oberen, unteren, linken und rechten Ränder der Matrix aus.
Die Ausgabe sollte wie folgt 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 16Probier es selbst
// Schreibe deinen Code nur innerhalb der Klasse. Schreibe kein main() und keinen Code außerhalb dieser Klasse.
class PrintPatterns {
public static void printPatterns(int[][] matrix) {
// Schreibe deinen Code hier
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitung