Schemi comuni degli array 2D
Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 8 di 59.
Alcuni schemi ricorrono spesso quando si lavora con array 2D. Riconoscere questi schemi può aiutarti a risolvere i problemi in modo più efficiente. Ecco alcuni schemi comuni:
Attraversamento diagonale
Accedere agli elementi in cui l’indice della riga è uguale all’indice della colonna (matrix[i][i]) consente di ottenere la diagonale principale. Per la diagonale secondaria, la somma degli indici della riga e della colonna è uguale alla dimensione dell’array meno 1 (matrix[i][size - 1 - i]).
Per esempio:
1 2 3
4 5 6
7 8 9Attraversa la diagonale principale (matrix[i][i]): 1, 5, 9
Attraversa la diagonale secondaria (matrix[i][size - 1 - i]): 3, 5, 7
Attraversamento del bordo
Per attraversare gli elementi del bordo, mantieni costante un indice (0 o size - 1) mentre iteri sull’altro.
Per accedere al bordo superiore, iteri sulle colonne mantenendo l'indice di riga fisso a 0.
Per esempio:
1 2 3 4
5 6 7 8
9 10 11 12elementi del bordo: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (tutti tranne 6 e 7)
Sfida
FacileCrea un metodo chiamato printPatterns che accetta in input un array 2D quadrato di numeri interi (matrix) e stampa i seguenti schemi:
- Diagonale principale: stampa tutti gli elementi in cui l'indice della riga è uguale all'indice della colonna.
- Diagonale secondaria: stampa tutti gli elementi in cui la somma degli indici della riga e della colonna è uguale alla dimensione della matrice meno 1.
- Bordi: stampa gli elementi dei bordi superiore, inferiore, sinistro e destro della matrice.
L'output dovrebbe apparire così:
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 16Provalo tu
// Scrivi il tuo codice solo all'interno della classe. Non scrivere main() né altro codice al di fuori di questa classe.
class PrintPatterns {
public static void printPatterns(int[][] matrix) {
// Scrivi il tuo codice qui
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online