Lezione 12-4-12 - Array di Array


In un Array di Array si fa corrispondere ad ogni elemento di un dato array iniziale un altro array. Per ciò un array di array viene anche chiamato array bidimensionale.
Volendo in java è possibile creare array n-dimensionali.
Ogni elemento di un array di array (bidimensionale) è individuato da un doppio indice (uno per la riga e uno per la colonna) e proprio grazie a questa caratteristica vengono generalmente usati per creare matrici

Creazione di un array bidimensionale:   
<tipo di dato> nomeVariabile = new <tipo di dato>[dimR][dimC]
esempio: int a=new int[3][5]

Per poter accedere all'elemento di riga i e colonna j dell'array uso l'istruzione: a[i][j]
se utilizzo a[i] mi sto riferendo all'intera riga i-esima


utilizzando a.length fornisce il numero di righe mentre a[i].length fornisce il numero di colonne

esempio: si vuole realizzare un programma che crea una matrice di dimensione a piacere nella quale l'utente inserisce dei numeri. Il progrmma dovrà anche calcolare la somma di tutti i numeri inseriti in ogni riga

int m=in.readInt(“inserisci num righe”);
int n=in.readInt(“inserisci num colonne”);
int[][] matrice=new int[m][n];

//inserimento di valori nella matrice
for(int i=0;i<matrice.length;i++){
            for(int j=0;j<matrice[i].length;j++){
                        matrice[i][j] = in.readInt(“Elemento (“+i+”,”+j+”)?”);
            }
}

//calcolo delle somme di ogni riga della matrice
int somma;
for(int i=0;i<matrice.length;i++){
            somma=0;
            for(int j=0;j<matrice[i].length;j++){
                        somma +=matrice[i][j];
                        System.out.println(“somma della riga “+i+” = “+ somma);
            }
}


array bidimensionali non matriciali
in java è possibile crare array con un numero di verso di colonne per ogni riga

int[][] a=new int[3][];
a[0]=new int[2];
a[1]=new int[3];
a[2]=new int[4];
se mi viene passato un array frastagliato per copiarlo in un altro
for(int i=0;i<a.length;i++){
            for(int j=0;j<a[i].length;j++){

            }
}

letterali array
i letterali sono valori costanti di un certo tipo, ad esempio se scrivo 5 identifico automaticamente un intero

posso creare un array facendo int[] a={21,23,43,56};
posso creare un array di array facendo String[][] s={{“aaa”,”bbb”,”ccc”}, {“ddd”,”eee”,”fff”}};

Commenti