Array-Basics i Java Flerdimensjonale matriser kan defineres i enkle ord som en rekke matriser. Data i flerdimensjonale arrays lagres i tabellform (i rekkefølge).
Syntaks:
data-type [1. dimensjon][2. dimensjon][]..[N. dimensjon] array_name = ny datatype [størrelse1][størrelse2]….[størrelseN];
hvor:
- data-type : Type data som skal lagres i matrisen. For eksempel: int, char, etc.
- dimensjon : Dimensjonen til matrisen som er opprettet. For eksempel: 1D, 2D, etc.
- array_name : Navn på matrisen
- størrelse 1, størrelse 2, …, størrelse N : Størrelser på dimensjonene hhv.
Eksempler:
Two dimensional array: int[][] twoD_arr = new int[10][20]; Three dimensional array: int[][][] threeD_arr = new int[10][20][30];>
Størrelse på flerdimensjonale arrays : Det totale antallet elementer som kan lagres i en flerdimensjonal matrise kan beregnes ved å multiplisere størrelsen på alle dimensjonene.
For eksempel: Matrisen int[][] x = new int[10][20] kan lagre totalt (10*20) = 200 elementer. På samme måte array int[][][] x = new int[5][10][20] kan lagre totalt (5*10*20) = 1000 elementer.
Anvendelse av multi-dimensjonal array
● Flerdimensjonale matriser brukes til å lagre dataene i tabellform. Lagring av rullenummer og merker til en elev kan for eksempel enkelt gjøres ved hjelp av flerdimensjonale arrays. En annen vanlig bruk er å lagre bildene i 3D-matriser.
array sortert i java
● I dynamiske programmeringsspørsmål brukes flerdimensjonale arrays som brukes til å representere tilstandene til problemet.
● Bortsett fra disse har de også applikasjoner i mange standard algoritmiske problemer som: Matrix Multiplication, Adjacency matrise representation in grafer, Grid Search-problemer
To-dimensjonal matrise (2D-array)
To-dimensjonal matrise er den enkleste formen for en flerdimensjonal matrise. En to-dimensjonal matrise kan sees på som en matrise av en-dimensjonal matrise for enklere forståelse.
Indirekte erklæringsmetode:
- Erklæring – Syntaks:
data_type[][] array_name = new data_type[x][y]; For example: int[][] arr = new int[10][20];>
- Initialisering – Syntaks:
array_name[row_index][column_index] = value; For example: arr[0][0] = 1;>
Eksempel: 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> ]);> > }> }> |
>
>Produksjon
arr[0][0] = 1>
Eksempel: Implementering av 2D-array med standardverdier med 4*4 matrise
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(); } } }> |
>
>Produksjon
The 2D array is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>
Forklaring:
- Antall rader og kolonner spesifiseres ved hjelp av variablene rader og kolonner. 2D-matrisen opprettes ved hjelp av den nye operatoren, som tildeler minne for matrisen. Størrelsen på matrisen er spesifisert av rader og kolonner.
Direkte erklæringsmetode: Syntaks:
data_type[][] array_name = { {valueR1C1, valueR1C2, ....}, {valueR2C1, valueR2C2, ....} }; For example: int[][] arr = {{1, 2}, {3, 4}};>
Eksempel:
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]);> > }> }> |
>
>Produksjon
arr[0][0] = 1 arr[0][1] = 2 arr[1][0] = 3 arr[1][1] = 4>
Tilgang til elementer av todimensjonale arrays
Elementer i todimensjonale arrays refereres ofte til av x[i][j] der 'i' er radnummeret og 'j' er kolonnenummeret.
Syntaks:
x[row_index][column_index]>
For eksempel:
int[][] arr = new int[10][20]; arr[0][0] = 1;>
Eksemplet ovenfor representerer elementet i første rad og første kolonne. Merk : I matriser hvis størrelsen på matrisen er N. Indeksen vil være fra 0 til N-1. Derfor, for rad_indeks 2, er faktisk radnummer 2+1 = 3. Eksempel:
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> ]);> > }> }> |
>
>Produksjon
arr[0][0] = 1>
Representasjon av 2D-array i tabellformat:
En todimensjonal matrise kan sees på som en tabell med 'x'-rader og 'y'-kolonner der radnummeret varierer fra 0 til (x-1) og kolonnenummer fra 0 til (y-1). En todimensjonal matrise 'x' med 3 rader og 3 kolonner er vist nedenfor:
Skriv ut 2D-array i tabellformat:
For å skrive ut alle elementene i en todimensjonal matrise, bruk nestet for loops. For dette kreves to for-løkker, en for å krysse radene og en annen for å krysse kolonner.
Eksempel:
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();> > }> > }> }> |
>
>Produksjon
1 2 3 4>
Eksempel: Implementering av 2D-array med brukerinndata
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(); } }> |
>
>
Produksjon
Enter number of rows: 3 Enter number of columns: 3 1 2 3 2 4 6 3 6 9>
- Denne koden ber brukeren om å angi antall rader og kolonner for den 2-dimensjonale matrisen. Skannerklassen brukes til å lese brukerinndata. Deretter oppretter den en 2-dimensjonal matrise med heltall med det spesifiserte antallet rader og kolonner, og tilordner hvert element i matrisen i*j.
- Hvis du vil lage en flerdimensjonal matrise med mer enn to dimensjoner, kan du bruke samme tilnærming til å lage en matrise med matriser. For å lage en 3-dimensjonal matrise kan du for eksempel lage en matrise med 2-dimensjonale matriser.
Tredimensjonal matrise (3D-array)
Tredimensjonal matrise er en kompleks form for en flerdimensjonal matrise. En tredimensjonal matrise kan sees på som en matrise med to-dimensjonal matrise for enklere forståelse.
Indirekte erklæringsmetode:
len av streng i java
- Erklæring – Syntaks:
data_type[][][] array_name = new data_type[x][y][z]; For example: int[][][] arr = new int[10][20][30];>
- Initialisering – Syntaks:
array_name[array_index][row_index][column_index] = value; For example: arr[0][0][0] = 1;>
Eksempel:
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> ]);> > }> }> |
>
>Produksjon
arr[0][0][0] = 1>
Direkte erklæringsmetode: Syntaks:
data_type[][][] array_name = { { {valueA1R1C1, valueA1R1C2, ....}, {valueA1R2C1, valueA1R2C2, ....} }, { {valueA2R1C1, valueA2R1C2, ....}, {valueA2R2C1, valueA2R2C2, ....} } }; For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };>
Eksempel:
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]);> > }> }> |
>
>Produksjon
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>
Tilgang til elementer i tredimensjonale matriser
Elementer i tredimensjonale arrays refereres ofte til av x[i][j][k] der 'i' er matrisenummeret, 'j' er radnummeret og 'k' er kolonnenummeret.
Syntaks:
x[array_index][row_index][column_index]>
For eksempel:
int[][][] arr = new int[10][20][30]; arr[0][0][0] = 1;>
Eksemplet ovenfor representerer elementet som er tilstede i den første raden og den første kolonnen i den første matrisen i den deklarerte 3D-matrisen.
Merk : I matriser hvis størrelsen på matrisen er N. Indeksen vil være fra 0 til N-1. Derfor, for rad_indeks 2, er faktisk radnummer 2+1 = 3.
Eksempel:
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> ]);> > }> }> |
>
>Produksjon
arr[0][0][0] = 1>
Representasjon av 3D-array i tabellformat:
En tredimensjonal matrise kan sees på som en tabell med matriser med 'x' rader og 'y' kolonner der radnummeret varierer fra 0 til (x-1) og kolonnenummer varierer fra 0 til (y-1). En tredimensjonal matrise med tre matrise som inneholder tre rader og tre kolonner er vist nedenfor:
Skriv ut 3D-array i tabellformat:
For å skrive ut alle elementene i en tredimensjonal matrise, bruk nestet for loops. For dette kreves tre for løkker, en for å krysse arrayene, den andre for å krysse radene og en annen for å krysse kolonner.
Eksempel:
Java
tøm npm cache
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();> > }> > }> }> |
>
>Produksjon
1 2 3 4 5 6 7 8>
Sette inn en flerdimensjonal matrise under kjøretid:
Dette emnet er tvunget til å ta brukerdefinerte input til en flerdimensjonal matrise under kjøring. Det er fokusert på at brukeren først gir alle input til programmet under kjøring, og etter alle inntastede input vil programmet gi utdata med hensyn til hver input tilsvarende. Det er nyttig når brukeren ønsker å gi inndata for flere testtilfeller med flere forskjellige verdier først, og etter at alle disse tingene er gjort, vil programmet begynne å gi utdata. Som et eksempel, la oss finne det totale antallet partall og oddetall i en inndatamatrise. Her vil vi bruke konseptet med en 2-dimensjonal matrise.
Her er noen punkter som forklarer bruken av de ulike elementene i den kommende koden:
- Heltall for rad betraktes som antall testtilfeller og kolonneverdier betraktes som verdier i hver testtilfelle.
- En for()-løkke brukes til å oppdatere Test-Case-nummer og en annen for()-løkke brukes til å ta respektive matriseverdier.
- Ettersom all inntasting er gjort, brukes igjen to for()-løkker på samme måte for å utføre programmet i henhold til betingelsen som er spesifisert.
- Den første inndatalinjen er det totale antallet TestCases.
- Den andre linjen viser det totale antallet første matriseverdier.
- Den tredje linjen gir matriseverdier og så videre.
Gjennomføring:
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.> |
>
>
Produksjon:
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>