Array-Basics i Java Flerdimensionella arrayer kan definieras i enkla ord som array av arrayer. Data i flerdimensionella arrayer lagras i tabellform (i rad huvudordning).
Syntax:
data typ [1:a dimensionen][2:a dimensionen][]..[N:te dimensionen] array_name = ny datatyp [storlek1][storlek2]….[storlekN];
var:
- data typ : Typ av data som ska lagras i arrayen. Till exempel: int, char, etc.
- dimensionera : Dimensionen för den skapade arrayen. Till exempel: 1D, 2D, etc.
- array_name : Namnet på arrayen
- storlek 1, storlek 2, …, storlek N : Mått på måtten respektive.
Exempel:
Two dimensional array: int[][] twoD_arr = new int[10][20]; Three dimensional array: int[][][] threeD_arr = new int[10][20][30];>
Storlek på flerdimensionella arrayer : Det totala antalet element som kan lagras i en flerdimensionell array kan beräknas genom att multiplicera storleken på alla dimensioner.
Till exempel: Arrayen int[][] x = new int[10][20] kan lagra totalt (10*20) = 200 element. På samma sätt, array int[][][] x = ny int[5][10][20] kan lagra totalt (5*10*20) = 1000 element.
Tillämpning av multidimensionell array
● Flerdimensionella arrayer används för att lagra data i tabellform. Till exempel kan lagring av rullnummer och märken för en elev enkelt göras med hjälp av flerdimensionella arrayer. En annan vanlig användning är att lagra bilderna i 3D-arrayer.
● I dynamiska programmeringsfrågor används flerdimensionella arrayer som används för att representera problemets tillstånd.
● Förutom dessa har de också applikationer i många vanliga algoritmiska problem som: Matrixmultiplikation, Adjacency-matrisrepresentation i grafer, Grid-sökningsproblem
Tvådimensionell array (2D-array)
Tvådimensionell array är den enklaste formen av en flerdimensionell array. En tvådimensionell array kan ses som en array av endimensionell array för enklare förståelse.
Indirekt metod för deklaration:
- Deklaration – Syntax:
data_type[][] array_name = new data_type[x][y]; For example: int[][] arr = new int[10][20];>
- Initiering – Syntax:
array_name[row_index][column_index] = value; For example: arr[0][0] = 1;>
Exempel: 1
Java
import> java.io.*;> public> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr => new> int> [> 10> ][> 20> ];> > arr[> 0> ][> 0> ] => 1> ;> > System.out.println(> 'arr[0][0] = '> + arr[> 0> ][> 0> ]);> > }> }> |
>
>Produktion
arr[0][0] = 1>
Exempel: Implementering av 2D-array med standardvärden med 4*4-matris
Java
public> class> TwoDArray {> > public> static> void> main(String[] args) {> > int> rows => 4> ;> > int> columns => 4> ;> > int> [][] array => new> int> [rows][columns];> > int> value => 1> ;> > for> (> int> i => 0> ; i for (int j = 0; j array[i][j] = value; value++; } } System.out.println('The 2D array is: '); for (int i = 0; i for (int j = 0; j System.out.print(array[i][j] + ' '); } System.out.println(); } } }> |
java pgm
>
>Produktion
The 2D array is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>
Förklaring:
- Antalet rader och kolumner anges med variablerna rader och kolumner. 2D-matrisen skapas med den nya operatorn, som allokerar minne för matrisen. Storleken på arrayen anges av rader och kolumner.
Direkt deklarationsmetod: Syntax:
data_type[][] array_name = { {valueR1C1, valueR1C2, ....}, {valueR2C1, valueR2C2, ....} }; For example: int[][] arr = {{1, 2}, {3, 4}};>
Exempel:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > for> (> int> i => 0> ; i <> 2> ; i++)> > for> (> int> j => 0> ; j <> 2> ; j++)> > System.out.println(> 'arr['> + i +> ']['> + j +> '] = '> > + arr[i][j]);> > }> }> |
>
>Produktion
arr[0][0] = 1 arr[0][1] = 2 arr[1][0] = 3 arr[1][1] = 4>
Åtkomst till element i tvådimensionella arrayer
Element i tvådimensionella arrayer hänvisas vanligtvis till x[i][j] där 'i' är radnumret och 'j' är kolumnnumret.
Syntax:
Java-mjukvarumönster
x[row_index][column_index]>
Till exempel:
int[][] arr = new int[10][20]; arr[0][0] = 1;>
Ovanstående exempel representerar elementet som finns i första raden och första kolumnen. Notera : I arrayer om storleken på arrayen är N. Dess index kommer att vara från 0 till N-1. Därför, för rad_index 2, är det faktiska radnumret 2+1 = 3. Exempel:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > System.out.println(> 'arr[0][0] = '> + arr[> 0> ][> 0> ]);> > }> }> |
>
>Produktion
arr[0][0] = 1>
Representation av 2D-array i tabellformat:
En tvådimensionell array kan ses som en tabell med 'x'-rader och 'y'-kolumner där radnumret sträcker sig från 0 till (x-1) och kolumnnumret från 0 till (y-1). En tvådimensionell array 'x' med 3 rader och 3 kolumner visas nedan:
Skriv ut 2D-array i tabellformat:
För att mata ut alla element i en tvådimensionell array, använd kapslade för loopar. För detta krävs två för loopar, en för att korsa raderna och en annan för att korsa kolumner.
Exempel:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > for> (> int> i => 0> ; i <> 2> ; i++) {> > for> (> int> j => 0> ; j <> 2> ; j++) {> > System.out.print(arr[i][j] +> ' '> );> > }> > System.out.println();> > }> > }> }> |
>
>Produktion
1 2 3 4>
Exempel: Implementering av 2D-array med användarinmatning
Java
import> java.util.Scanner;> public> class> Main {> > public> static> void> main(String[] args)> > {> > Scanner scan => new> Scanner(System.in);> > System.out.print(> 'Enter number of rows: '> );> > int> rows = scan.nextInt();> > System.out.print(> 'Enter number of columns: '> );> > int> columns = scan.nextInt();> > int> [][] multidimensionalArray=> new> int> [rows][columns];> > // Now you can use the array like a regular> > // 2-dimensional array> > for> (> int> i => 0> ; i for (int j = 0; j multidimensionalArray[i][j]= (i + 1) * (j + 1); } } for (int i = 0; i for (int j = 0; j System.out.print(multidimensionalArray[i][j]+ ' '); } System.out.println(); } scan.close(); } }> |
>
>
Produktion
Enter number of rows: 3 Enter number of columns: 3 1 2 3 2 4 6 3 6 9>
- Den här koden uppmanar användaren att ange antalet rader och kolumner för den 2-dimensionella matrisen. Skannerklassen används för att läsa användarinmatningen. Sedan skapar den en 2-dimensionell array av heltal med det specificerade antalet rader och kolumner, och tilldelar varje element i arrayen i*j.
- Om du vill skapa en flerdimensionell array med fler än två dimensioner kan du använda samma metod för att skapa en array med arrayer. För att till exempel skapa en 3-dimensionell array kan du skapa en array med 2-dimensionella arrayer.
Tredimensionell array (3D-array)
Tredimensionell array är en komplex form av en flerdimensionell array. En tredimensionell array kan ses som en array av tvådimensionell array för enklare förståelse.
manuell testning
Indirekt metod för deklaration:
- Deklaration – Syntax:
data_type[][][] array_name = new data_type[x][y][z]; For example: int[][][] arr = new int[10][20][30];>
- Initiering – Syntax:
array_name[array_index][row_index][column_index] = value; For example: arr[0][0][0] = 1;>
Exempel:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr => new> int> [> 10> ][> 20> ][> 30> ];> > arr[> 0> ][> 0> ][> 0> ] => 1> ;> > System.out.println(> 'arr[0][0][0] = '> + arr[> 0> ][> 0> ][> 0> ]);> > }> }> |
>
>Produktion
arr[0][0][0] = 1>
Direkt deklarationsmetod: Syntax:
data_type[][][] array_name = { { {valueA1R1C1, valueA1R1C2, ....}, {valueA1R2C1, valueA1R2C2, ....} }, { {valueA2R1C1, valueA2R1C2, ....}, {valueA2R2C1, valueA2R2C2, ....} } }; For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };>
Exempel:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } }, { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > for> (> int> i => 0> ; i <> 2> ; i++)> > for> (> int> j => 0> ; j <> 2> ; j++)> > for> (> int> z => 0> ; z <> 2> ; z++)> > System.out.println(> 'arr['> + i> > +> ']['> > + j +> ']['> > + z +> '] = '> > + arr[i][j][z]);> > }> }> |
>
>Produktion
arr[0][0][0] = 1 arr[0][0][1] = 2 arr[0][1][0] = 3 arr[0][1][1] = 4 arr[1][0][0] = 5 arr[1][0][1] = 6 arr[1][1][0] = 7 arr[1][1][1] = 8>
Åtkomst till element i tredimensionella arrayer
Element i tredimensionella arrayer hänvisas vanligtvis till x[i][j][k] där 'i' är arraynumret, 'j' är radnumret och 'k' är kolumnnumret.
Syntax:
x[array_index][row_index][column_index]>
Till exempel:
int[][][] arr = new int[10][20][30]; arr[0][0][0] = 1;>
Ovanstående exempel representerar elementet som finns i den första raden och första kolumnen i den första matrisen i den deklarerade 3D-matrisen.
Notera : I arrayer om storleken på arrayen är N. Dess index kommer att vara från 0 till N-1. Därför, för rad_index 2, är det faktiska radnumret 2+1 = 3.
Exempel:
java sorteringslista
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } }, { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > System.out.println(> 'arr[0][0][0] = '> + arr[> 0> ][> 0> ][> 0> ]);> > }> }> |
>
>Produktion
arr[0][0][0] = 1>
Representation av 3D-array i tabellformat:
En tredimensionell array kan ses som en tabell med arrayer med 'x'-rader och 'y'-kolumner där radnumret sträcker sig från 0 till (x-1) och kolumnnumret från 0 till (y-1). En tredimensionell array med 3 array som innehåller 3 rader och 3 kolumner visas nedan:
Skriv ut 3D-array i tabellformat:
För att mata ut alla element i en tredimensionell array, använd kapslade för loopar. För detta krävs tre för loopar, en för att korsa arrayerna, den andra för att korsa raderna och en annan för att korsa kolumner.
Exempel:
Java
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } },> > { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > for> (> int> i => 0> ; i <> 2> ; i++) {> > for> (> int> j => 0> ; j <> 2> ; j++) {> > for> (> int> k => 0> ; k <> 2> ; k++) {> > System.out.print(arr[i][j][k] +> ' '> );> > }> > System.out.println();> > }> > System.out.println();> > }> > }> }> |
>
>Produktion
1 2 3 4 5 6 7 8>
Infoga en flerdimensionell matris under körning:
Det här ämnet tvingas n ta användardefinierad input till en flerdimensionell array under körning. Det är fokuserat på att användaren först ger all indata till programmet under körning och efter alla inmatade input kommer programmet att ge utdata med avseende på varje ingång i enlighet därmed. Det är användbart när användaren vill göra input för flera testfall med flera olika värden först och efter att alla dessa saker är gjorda kommer programmet att börja ge utdata. Som ett exempel, låt oss hitta det totala antalet jämna och udda tal i en inmatningsmatris. Här kommer vi att använda konceptet med en 2-dimensionell array.
Här är några punkter som förklarar användningen av de olika elementen i den kommande koden:
- Radheltalsnummer betraktas som antalet testfall och kolumnvärden betraktas som värden i varje testfall.
- En for()-loop används för att uppdatera Test-Case-nummer och en annan for()-loop används för att ta respektive matrisvärden.
- När all inmatning är gjord, används återigen två for()-loopar på samma sätt för att exekvera programmet enligt det angivna villkoret.
- Den första inmatningsraden är det totala antalet testfall.
- Den andra raden visar det totala antalet första matrisvärden.
- Den tredje raden ger matrisvärden och så vidare.
Genomförande:
Java
import> java.io.*;> import> java.util.Scanner;> class> GFGTestCase {> > public> static> void> main(String[] args)> > {> > // Scanner class to take> > // values from console> > Scanner scanner => new> Scanner(System.in);> > // totalTestCases = total> > // number of TestCases> > // eachTestCaseValues => > // values in each TestCase as> > // an Array values> > int> totalTestCases, eachTestCaseValues;> > // takes total number of> > // TestCases as integer number> > totalTestCases = scanner.nextInt();> > // An array is formed as row> > // values for total testCases> > int> [][] arrayMain => new> int> [totalTestCases][];> > // for loop to take input of> > // values in each TestCase> > for> (> int> i => 0> ; i eachTestCaseValues = scanner.nextInt(); arrayMain[i] = new int[eachTestCaseValues]; for (int j = 0; j arrayMain[i][j] = scanner.nextInt(); } } // All input entry is done. // Start executing output // according to condition provided for (int i = 0; i // Initialize total number of // even & odd numbers to zero int nEvenNumbers = 0, nOddNumbers = 0; // prints TestCase number with // total number of its arguments System.out.println('TestCase ' + i + ' with ' + arrayMain[i].length + ' values:'); for (int j = 0; j System.out.print(arrayMain[i][j] + ' '); // even & odd counter updated as // eligible number is found if (arrayMain[i][j] % 2 == 0) { nEvenNumbers++; } else { nOddNumbers++; } } System.out.println(); // Prints total numbers of // even & odd System.out.println( 'Total Even numbers: ' + nEvenNumbers + ', Total Odd numbers: ' + nOddNumbers); } } } // This code is contributed by Udayan Kamble.> |
hur många uns är 10 milliliter
>
>
Produktion:
Input: 2 2 1 2 3 1 2 3 Output: TestCase 0 with 2 values: 1 2 Total Even numbers: 1, Total Odd numbers: 1 TestCase 1 with 3 values: 1 2 3 Total Even numbers: 1, Total Odd numbers: 2 Input: 3 8 1 2 3 4 5 11 55 66 5 100 101 55 35 108 6 3 80 11 2 1 5 Output: TestCase 0 with 8 values: 1 2 3 4 5 11 55 66 Total Even numbers: 3, Total Odd numbers: 5 TestCase 1 with 5 values: 100 101 55 35 108 Total Even numbers: 2, Total Odd numbers: 3 TestCase 2 with 6 values: 3 80 11 2 1 5 Total Even numbers: 2, Total Odd numbers: 4>