logo

Forskellige måder at erklære og initialisere 2-D Array på i Java

Et multidimensionelt array. De mest almindeligt anvendte multidimensionelle arrays er 2-D og 3-D arrays. Vi kan sige, at ethvert højere dimensionelt array dybest set er et array af arrays. Et meget almindeligt eksempel på et 2D-array er skakbræt. Et skakbræt er et gitter, der indeholder 64 1×1 kvadratiske kasser. Du kan på samme måde visualisere et 2D-array. I et 2D-array er hvert element forbundet med et rækkenummer og kolonnenummer. Adgang til ethvert element i 2D-arrayet svarer til at få adgang til posten i en Excel-fil ved hjælp af både rækkenummer og kolonnenummer. 2D-arrays er nyttige, når du implementerer et Tic-Tac-Toe-spil, skak eller endda lagring af billedpixel.



Erklæring af 2-D-array i Java:

Ethvert 2-dimensionelt array kan erklæres som følger:

Syntaks:

datatype matrixnavn[][]; (ELLER) datatype[][] matrixnavn;



    data_type: Da Java er et statisk-type sprog (dvs. det forventer, at dets variabler bliver erklæret, før de kan tildeles værdier). Så specificering af datatypen afgør, hvilken type elementer den vil acceptere. f.eks. for kun at gemme heltalsværdier, vil datatypen blive erklæret som int. array_name: Det er navnet, der gives til 2-D arrayet. f.eks. fag, studerende, frugter, afdeling mv.

Bemærk: Vi kan skrive [ ][ ] efter data_type, eller vi kan skrive [ ][ ] efter array_name, mens vi erklærer 2D-arrayet.

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> >}> }>

>

>

Forskellige tilgange til initialisering af 2-D-array i Java:

data_type[][] array_Name = ny data_type[no_of_rows][no_of_columns];

Det samlede antal elementer i ethvert 2D-array vil være lig med (no_of_rows) * (no_of_columns).

    no_of_rows: Antallet af rækker i en matrix. f.eks. no_of_rows = 3, så vil arrayet have tre rækker. no_of_columns: Antallet af kolonner i en matrix. f.eks. no_of_columns = 4, så vil arrayet have fire kolonner.

Ovenstående syntaks for array-initialisering vil tildele standardværdier til alle array-elementer i henhold til den specificerede datatype.
Nedenfor er implementeringen af ​​forskellige tilgange til initialisering af 2D-arrays:

alfabet i tal

Fremgangsmåde 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>]);> >}> }>

>

>

Bemærk: Når du initialiserer et 2D-array, skal du altid angive den første dimension (antal rækker), men at angive den anden dimension (antal kolonner) kan udelades.

I kodestykket nedenfor har vi ikke angivet antallet af kolonner. Java-kompileren er dog smart nok til at manipulere størrelsen ved at kontrollere antallet af elementer inde i kolonnerne.

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 få adgang til ethvert element i et 2D-array ved hjælp af rækkenumre og kolonnenumre.

Fremgangsmåde 2:

I kodestykket nedenfor har vi ikke angivet antallet af rækker og kolonner. Java-kompileren er dog smart nok til at manipulere størrelsen ved at kontrollere antallet af elementer inde i rækkerne og kolonnerne.

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>]);> >}> }>

hvad er eksport i linux

>

javatable

>

Produktion

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

Fremgangsmåde 3:

Desuden kan vi initialisere hvert element i arrayet separat. Se kodestykket nedenfor:

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]]>

tilgang 4

At bruge ovenstående tilgang til array-initialisering ville være en kedelig opgave, hvis størrelsen af ​​2D-arrayet er for stor. Den effektive måde er at bruge for loop til initialisering af array-elementerne i tilfælde af et stort 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>

Bemærk: Vi kan bruge arr. længdefunktionen til at finde rækkernes størrelse (1. dimension), og arr[0].length-funktionen til at finde størrelsen på kolonnerne (2. dimension).

Fremgangsmåde 5: (Jagged arrays)

Der kan være et bestemt scenarie, hvor du ønsker, at hver række skal have et forskelligt antal kolonner. Denne type array kaldes et 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 til at tilføje to 2D-arrays:

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])); } } }>

>

ubuntu build vigtigt

>

Produktion

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