En flerdimensionell array. De vanligaste flerdimensionella arrayerna är 2-D och 3-D arrays. Vi kan säga att varje högre dimensionell array i grunden är en array av arrayer. Ett mycket vanligt exempel på en 2D-array är schackbräde. Ett schackbräde är ett rutnät som innehåller 64 1×1 fyrkantiga rutor. Du kan på liknande sätt visualisera en 2D-array. I en 2D-array är varje element associerat med ett radnummer och kolumnnummer. Att komma åt valfritt element i 2D-matrisen liknar att komma åt posten för en Excel-fil med både radnummer och kolumnnummer. 2D-arrayer är användbara när du implementerar ett Tic-Tac-Toe-spel, schack eller till och med lagrar bildpixlarna.

Deklarera 2-D-array i Java:
Vilken 2-dimensionell matris som helst kan deklareras enligt följande:
Syntax:
datatyp matrisnamn[][]; (ELLER) datatyp[][] array_name;
- data_type: Eftersom Java är ett statiskt skrivet språk (dvs det förväntar sig att dess variabler ska deklareras innan de kan tilldelas värden). Så att specificera datatypen avgör vilken typ av element den kommer att acceptera. t.ex. för att endast lagra heltalsvärden kommer datatypen att deklareras som int. array_name: Det är namnet som ges till 2-D arrayen. t.ex. ämnen, elever, frukter, institution osv.
Notera: Vi kan skriva [ ][ ] efter data_type eller så kan vi skriva [ ][ ] efter array_name medan vi deklarerar 2D-arrayen.
Java
// 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> >}> }> |
>
>
java fall uttalande
Olika tillvägagångssätt för initiering av 2-D-array i Java:
data_type[][] array_Name = ny data_typ[antal_rader][antal_kolumner];
Det totala antalet element i en 2D-array kommer att vara lika med (no_of_rows) * (no_of_columns).
- no_of_rows: Antalet rader i en array. t.ex. no_of_rows = 3, då kommer arrayen att ha tre rader. no_of_columns: Antalet kolumner i en array. t.ex. no_of_columns = 4, då kommer matrisen att ha fyra kolumner.
Ovanstående syntax för arrayinitiering kommer att tilldela standardvärden till alla arrayelement enligt den specificerade datatypen.
Nedan följer implementeringen av olika metoder för att initiera 2D-matriser:
Tillvägagångssätt 1:
Java
// 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>]);> >}> }> |
>
>
Notera: När du initierar en 2D-array måste du alltid ange den första dimensionen (antal rader), men att tillhandahålla den andra dimensionen (antal kolumner) kan utelämnas.
I kodavsnittet nedan har vi inte angett antalet kolumner. Java-kompilatorn är dock smart nog att manipulera storleken genom att kontrollera antalet element inuti kolumnerna.
Java
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>][];> >}> }> |
>
>
Du kan komma åt alla element i en 2D-array med hjälp av radnummer och kolumnnummer.

Tillvägagångssätt 2:
I kodavsnittet nedan har vi inte angett antalet rader och kolumner. Java-kompilatorn är dock smart nog att manipulera storleken genom att kontrollera antalet element inuti raderna och kolumnerna.
Java
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>]);> >}> }> |
>
>Produktion
Fundamental Subject in Computer Engineering: Data Structures & Algorithms Fundamental Subject in Mechanical Engineering: Fluid Mechanics Fundamental Subject in Electronics Engineering: Digital Electronics>
Tillvägagångssätt 3:
Dessutom kan vi initiera varje element i arrayen separat. Titta på kodavsnittet nedan:
Java
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));> >}> }> |
>
>Produktion
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]]>
Tillvägagångssätt 4
Att använda ovanstående tillvägagångssätt för arrayinitiering skulle vara en tråkig uppgift om storleken på 2D-arrayen är för stor. Det effektiva sättet är att använda en loop för att initiera arrayelementen i fallet med en stor 2D-array.
Java
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(); } } }> |
>
>Produktion
First three rows are: 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6>
Notera: Vi kan använda arr. längdfunktionen för att hitta storleken på raderna (1:a dimensionen), och arr[0].length-funktionen för att hitta storleken på kolumnerna (2:a dimensionen).
Tillvägagångssätt 5: (Jagged arrays)
Det kan finnas ett visst scenario där du vill att varje rad ska ha olika antal kolumner. Denna typ av array kallas en Jagged Array.
Java
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(); } } }> |
>
>Produktion
The values of 2D jagged array 0 1 2 3 4 5>
Program för att lägga till två 2D-matriser:
Java
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])); } } }> |
>
>Produktion
Resultant 2D array: [5, 7, 9] [5, 8, 8]>