Een multidimensionale array. De meest gebruikte multidimensionale arrays zijn 2D- en 3D-arrays. We kunnen zeggen dat elke hoger-dimensionale array in feite een array van arrays is. Een veel voorkomend voorbeeld van een 2D-array is Chess Board. Een schaakbord is een raster met 64 vierkante vakken van 1×1. U kunt op dezelfde manier een 2D-array visualiseren. In een 2D-array is elk element gekoppeld aan een rijnummer en kolomnummer. Toegang tot elk element van de 2D-array is vergelijkbaar met toegang tot de record van een Excel-bestand met behulp van zowel het rijnummer als het kolomnummer. 2D-arrays zijn handig bij het implementeren van een boter-kaas-en-eierenspel, schaken of zelfs bij het opslaan van de beeldpixels.

2D-array declareren in Java:
Elke tweedimensionale array kan als volgt worden gedeclareerd:
Syntaxis:
data_type array_naam[][]; (OR) data_type[][] array_naam;
- data_type: Omdat Java een statisch getypeerde taal is (dat wil zeggen dat het verwacht dat zijn variabelen worden gedeclareerd voordat er waarden aan kunnen worden toegewezen). Het specificeren van het datatype bepaalt dus welk type elementen het accepteert. bijv. om alleen gehele waarden op te slaan, wordt het gegevenstype gedeclareerd als int. array_name: Het is de naam die aan de 2D-array wordt gegeven. bijv. vakken, studenten, fruit, afdeling, etc.
Opmerking: We kunnen [ ][ ] schrijven na data_type of we kunnen [ ][ ] schrijven na array_name terwijl we de 2D-array declareren.
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> >}> }> |
>
>
Verschillende benaderingen voor initialisatie van 2D-array in Java:
data_type[][] array_Naam = nieuw data_type[geen_van_rijen][geen_van_kolommen];
Het totaal aantal elementen in elke 2D-array is gelijk aan (no_of_rows) * (no_of_columns).
- no_of_rows: Het aantal rijen in een array. bijv. no_of_rows = 3, dan heeft de array drie rijen. no_of_columns: Het aantal kolommen in een array. bijv. no_of_columns = 4, dan heeft de array vier kolommen.
De bovenstaande syntaxis van array-initialisatie wijst standaardwaarden toe aan alle array-elementen volgens het opgegeven gegevenstype.
Hieronder vindt u de implementatie van verschillende benaderingen voor het initialiseren van 2D-arrays:
Benadering 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>]);> >}> }> |
>
>
Opmerking: Wanneer u een 2D-array initialiseert, moet u altijd de eerste dimensie (aantal rijen) opgeven, maar het opgeven van de tweede dimensie (aantal kolommen) mag worden weggelaten.
In het onderstaande codefragment hebben we het aantal kolommen niet gespecificeerd. De Java-compiler is echter slim genoeg om de grootte te manipuleren door het aantal elementen in de kolommen te controleren.
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>][];> >}> }> |
>
>
U hebt toegang tot elk element van een 2D-array met behulp van rijnummers en kolomnummers.

Benadering 2:
In het onderstaande codefragment hebben we het aantal rijen en kolommen niet gespecificeerd. De Java-compiler is echter slim genoeg om de grootte te manipuleren door het aantal elementen in de rijen en kolommen te controleren.
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>]);> >}> }> |
>
>Uitvoer
Fundamental Subject in Computer Engineering: Data Structures & Algorithms Fundamental Subject in Mechanical Engineering: Fluid Mechanics Fundamental Subject in Electronics Engineering: Digital Electronics>
Benadering 3:
Bovendien kunnen we elk element van de array afzonderlijk initialiseren. Bekijk het onderstaande codefragment:
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));> >}> }> |
>
>Uitvoer
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]]>
Benadering 4
Het gebruik van de bovenstaande aanpak voor array-initialisatie zou een vervelende taak zijn als de grootte van de 2D-array te groot is. De efficiënte manier is om for-lus te gebruiken voor het initialiseren van de array-elementen in het geval van een grote 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(); } } }> |
>
>Uitvoer
First three rows are: 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6>
Opmerking: We kunnen arr gebruiken. lengtefunctie om de grootte van de rijen te vinden (1e dimensie), en arr[0].length-functie om de grootte van de kolommen te vinden (2e dimensie).
Benadering 5: (gekartelde arrays)
Er kan een bepaald scenario zijn waarin u wilt dat elke rij een ander aantal kolommen heeft. Dit type array wordt een Jagged Array genoemd.
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(); } } }> |
>
>Uitvoer
The values of 2D jagged array 0 1 2 3 4 5>
Programma om twee 2D-arrays toe te voegen:
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])); } } }> |
java wiskunde pow
>
>Uitvoer
Resultant 2D array: [5, 7, 9] [5, 8, 8]>