logo

Diversi modi per dichiarare e inizializzare un array 2-D in Java

Un array multidimensionale. Gli array multidimensionali più comunemente utilizzati sono gli array 2D e 3D. Possiamo dire che qualsiasi array di dimensione superiore è fondamentalmente un array di array. Un esempio molto comune di array 2D è la scacchiera. Una scacchiera è una griglia contenente 64 caselle quadrate 1×1. Allo stesso modo puoi visualizzare un array 2D. In un array 2D, ogni elemento è associato a un numero di riga e a un numero di colonna. L'accesso a qualsiasi elemento dell'array 2D è simile all'accesso al record di un file Excel utilizzando sia il numero di riga che il numero di colonna. Gli array 2D sono utili durante l'implementazione di un gioco Tic-Tac-Toe, degli scacchi o anche della memorizzazione dei pixel dell'immagine.



Dichiarazione di array 2D in Java:

Qualsiasi array bidimensionale può essere dichiarato come segue:

Sintassi:

tipo_dati nome_array[][]; (OR) tipo_dati[][] nome_array;



    data_type: poiché Java è un linguaggio tipizzato staticamente (ovvero si aspetta che le sue variabili vengano dichiarate prima che possano essere assegnati valori). Quindi, specificando il tipo di dati si decide il tipo di elementi che accetterà. per esempio. per memorizzare solo valori interi, il tipo di dati verrà dichiarato come int. array_name: è il nome assegnato all'array 2D. per esempio. materie, studenti, frutta, dipartimento, ecc.

Nota: Possiamo scrivere [ ][ ] dopo data_type oppure possiamo scrivere [ ][ ] dopo array_name mentre dichiariamo l'array 2D.

Giava






// java program showing declaration of arrays> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> > >int>[][] integer2DArray;>// 2D integer array> >String[][] string2DArray;>// 2D String array> >double>[][] double2DArray;>// 2D double array> >boolean>[][] boolean2DArray;>// 2D boolean array> >float>[][] float2DArray;>// 2D float array> >double>[][] double2DArray;>// 2D double array> >}> }>

>

>

Diversi approcci per l'inizializzazione dell'array 2D in Java:

tipo_dati[][] nome_array = nuovo tipo_dati[n.di_righe][n.di_colonne];

Gli elementi totali in qualsiasi array 2D saranno uguali a (no_of_rows) * (no_of_columns).

    no_of_rows: il numero di righe in un array. per esempio. no_of_rows = 3, l'array avrà tre righe. no_of_columns: il numero di colonne in un array. per esempio. no_of_columns = 4, l'array avrà quattro colonne.

La sintassi precedente dell'inizializzazione dell'array assegnerà valori predefiniti a tutti gli elementi dell'array in base al tipo di dati specificato.
Di seguito è riportata l'implementazione di vari approcci per l'inizializzazione degli array 2D:

sanjay dutt e

Approccio 1:

Giava




// java program to initialize a 2D array> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Declaration along with initialization> >// 2D integer array with 5 rows and 3 columns> >// integer array elements are initialized with 0> >int>[][] integer2DArray =>new> int>[>5>][>3>];> >System.out.println(> >'Default value of int array element: '> >+ integer2DArray[>0>][>0>]);> > >// 2D String array with 4 rows and 4 columns> >// String array elements are initialized with null> >String[][] string2DArray =>new> String[>4>][>4>];> >System.out.println(> >'Default value of String array element: '> >+ string2DArray[>0>][>0>]);> > >// 2D boolean array with 3 rows and 5 columns> >// boolean array elements are initialized with false> >boolean>[][] boolean2DArray =>new> boolean>[>4>][>4>];> >System.out.println(> >'Default value of boolean array element: '> >+ boolean2DArray[>0>][>0>]);> > >// 2D char array with 10 rows and 10 columns> >// char array elements are initialized with> >// 'u0000'(null character)> >char>[][] char2DArray =>new> char>[>10>][>10>];> >System.out.println(> >'Default value of char array element: '> >+ char2DArray[>0>][>0>]);> > >// First declaration and then initialization> >int>[][] arr;>// declaration> > >// System.out.println('arr[0][0]: '+ arr[0][0]);> >// The above line will throw an error, as we have> >// only declared the 2D array, but not initialized> >// it.> >arr =>new> int>[>5>][>3>];>// initialization> >System.out.println(>'arr[0][0]: '> + arr[>0>][>0>]);> >}> }>

>

>

Nota: Quando inizializzi un array 2D, devi sempre specificare la prima dimensione (n. di righe), ma la seconda dimensione (n. di colonne) può essere omessa.

Nello snippet di codice seguente non abbiamo specificato il numero di colonne. Tuttavia, il compilatore Java è abbastanza intelligente da manipolare la dimensione controllando il numero di elementi all'interno delle colonne.

Giava




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// The line below will throw an error, as the first> >// dimension(no. of rows) is not specified> >int>[][] arr =>new> int>[][>3>];> > >// The line below will execute without any error, as> >// the first dimension(no. of rows) is specified> >int>[][] arr =>new> int>[>2>][];> >}> }>

>

>

È possibile accedere a qualsiasi elemento di una matrice 2D utilizzando i numeri di riga e di colonna.

Approccio 2:

Nello snippet di codice seguente non abbiamo specificato il numero di righe e colonne. Tuttavia, il compilatore Java è abbastanza intelligente da manipolare la dimensione controllando il numero di elementi all'interno delle righe e delle colonne.

Giava




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >String[][] subjects = {> >{>'Data Structures & Algorithms'>,> >'Programming & Logic'>,>'Software Engineering'>,> >'Theory of Computation'> },>// row 1> > >{>'Thermodynamics'>,>'Metallurgy'>,> >'Machine Drawing'>,> >'Fluid Mechanics'> },>// row2> > >{>'Signals and Systems'>,>'Digital Electronics'>,> >'Power Electronics'> }>// row3> >};> > >System.out.println(> >'Fundamental Subject in Computer Engineering: '> >+ subjects[>0>][>0>]);> >System.out.println(> >'Fundamental Subject in Mechanical Engineering: '> >+ subjects[>1>][>3>]);> >System.out.println(> >'Fundamental Subject in Electronics Engineering: '> >+ subjects[>2>][>1>]);> >}> }>

convertire una stringa in intero

>

qual è la dimensione dello schermo del mio monitor?

>

Produzione

Fundamental Subject in Computer Engineering: Data Structures & Algorithms Fundamental Subject in Mechanical Engineering: Fluid Mechanics Fundamental Subject in Electronics Engineering: Digital Electronics>

Approccio 3:

Inoltre, possiamo inizializzare ciascun elemento dell'array separatamente. Guarda lo snippet di codice qui sotto:

Giava




import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] scores =>new> int>[>2>][>2>];> >// Initializing array element at position[0][0],> >// i.e. 0th row and 0th column> >scores[>0>][>0>] =>15>;> >// Initializing array element at position[0][1],> >// i.e. 0th row and 1st column> >scores[>0>][>1>] =>23>;> >// Initializing array element at position[1][0],> >// i.e. 1st row and 0th column> >scores[>1>][>0>] =>30>;> >// Initializing array element at position[1][1],> >// i.e. 1st row and 1st column> >scores[>1>][>1>] =>21>;> > >// printing the array elements individually> >System.out.println(>'scores[0][0] = '> >+ scores[>0>][>0>]);> >System.out.println(>'scores[0][1] = '> >+ scores[>0>][>1>]);> >System.out.println(>'scores[1][0] = '> >+ scores[>1>][>0>]);> >System.out.println(>'scores[1][1] = '> >+ scores[>1>][>1>]);> >// printing 2D array using Arrays.deepToString() method> >System.out.println(> >'Printing 2D array using Arrays.deepToString() method: '>);> >System.out.println(Arrays.deepToString(scores));> >}> }>

>

>

Produzione

scores[0][0] = 15 scores[0][1] = 23 scores[1][0] = 30 scores[1][1] = 21 Printing 2D array using Arrays.deepToString() method: [[15, 23], [30, 21]]>

Approccio 4

L'utilizzo dell'approccio precedente per l'inizializzazione dell'array sarebbe un compito noioso se la dimensione dell'array 2D fosse troppo grande. Il modo efficiente è utilizzare il ciclo for per inizializzare gli elementi dell'array nel caso di un array 2D di grandi dimensioni.

Giava




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int> rows =>80>, columns =>5>;> >int>[][] marks =>new> int>[rows][columns];> > >// initializing the array elements using for loop> >for> (>int> i =>0>; i for (int j = 0; j marks[i][j] = i + j; } } // printing the first three rows of marks array System.out.println('First three rows are: '); for (int i = 0; i <3; i++) { for (int j = 0; j System.out.printf(marks[i][j] + ' '); } System.out.println(); } } }>

>

>

Produzione

First three rows are: 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6>

Nota: Possiamo usare arr. funzione length per trovare la dimensione delle righe (1a dimensione) e funzione arr[0].length per trovare la dimensione delle colonne (2a dimensione).

Approccio 5: (array frastagliati)

Potrebbe esserci un determinato scenario in cui desideri che ogni riga abbia un numero diverso di colonne. Questo tipo di array è chiamato Jagged Array.

Giava




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// declaring a 2D array with 2 rows> >int> jagged[][] =>new> int>[>2>][];> > >// not specifying the 2nd dimension,> >// and making it as jagged array> >// first row has 2 columns> >jagged[>0>] =>new> int>[>2>];> >// second row has 4 columns> >jagged[>1>] =>new> int>[>4>];> >// Initializing the array> >int> count =>0>;> >for> (>int> i =>0>; i // remember to use jagged[i].length instead of // jagged[0].length, since every row has // different number of columns for (int j = 0; j jagged[i][j] = count++; } } // printing the values of 2D Jagged array System.out.println('The values of 2D jagged array'); for (int i = 0; i for (int j = 0; j System.out.printf(jagged[i][j] + ' '); System.out.println(); } } }>

>

>

Produzione

The values of 2D jagged array 0 1 2 3 4 5>

Programma per aggiungere due array 2D:

Giava




import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] arr1 = { {>1>,>2>,>3> }, {>4>,>5>,>6> } };> >int>[][] arr2 = { {>4>,>5>,>6> }, {>1>,>3>,>2> } };> >int>[][] sum =>new> int>[>2>][>3>];> > >// adding two 2D arrays element-wise> >for> (>int> i =>0>; i for (int j = 0; j 0].length; j++) { sum[i][j] = arr1[i][j] + arr2[i][j]; } } System.out.println('Resultant 2D array: '); for (int i = 0; i System.out.println(Arrays.toString(sum[i])); } } }>

>

Java per il ciclo

>

Produzione

Resultant 2D array: [5, 7, 9] [5, 8, 8]>