logo

Matrice multidimensionale în Java

Elemente de bază ale matricei în Java Matrice multidimensionale poate fi definit în cuvinte simple ca matrice de matrice. Datele din matrice multidimensionale sunt stocate în formă tabelară (în ordinea majoră a rândurilor).

replaceall în șir de caractere java

Sintaxă:



tip_date [Prima dimensiune][a doua dimensiune][]..[A-a dimensiune] nume_matrice = nou tip de date [mărimea1][mărimea2]….[mărimeaN];

Unde:

  • tip_date : Tipul de date care urmează să fie stocate în matrice. De exemplu: int, char etc.
  • dimensiune : Dimensiunea matricei create. De exemplu: 1D, 2D etc.
  • nume_matrice : Numele matricei
  • mărimea 1, mărimea 2, …, mărimea N : Dimensiunile dimensiunilor respectiv.

Exemple:



Two dimensional array: int[][] twoD_arr = new int[10][20];  Three dimensional array: int[][][] threeD_arr = new int[10][20][30];>

Dimensiunea tablourilor multidimensionale : Numărul total de elemente care pot fi stocate într-o matrice multidimensională poate fi calculat prin înmulțirea dimensiunii tuturor dimensiunilor.

De exemplu: Matricea int[][] x = nou int[10][20] poate stoca un total de (10*20) = 200 de elemente. În mod similar, matrice int[][][] x = nou int[5][10][20] poate stoca un total de (5*10*20) = 1000 de elemente.

Aplicarea matricei multi-dimensionale

● Matricele multidimensionale sunt folosite pentru a stoca datele într-o formă tabelară. De exemplu, stocarea numărului de rolă și a notelor unui elev se poate face cu ușurință folosind matrice multidimensionale. O altă utilizare comună este stocarea imaginilor în matrice 3D.



● În întrebările de programare dinamică se folosesc tablouri multidimensionale care sunt folosite pentru a reprezenta stările problemei.

● În afară de acestea, au și aplicații în multe probleme algoritmice standard, cum ar fi: Înmulțirea matricei, Reprezentarea matricei de adiacență în grafice, Probleme de căutare în grilă

Matrice bidimensională (Matrice 2D)

Matricea bidimensională este cea mai simplă formă a unui tablou multidimensional. O matrice bidimensională poate fi văzută ca o matrice de matrice unidimensională pentru o înțelegere mai ușoară.

Metoda indirectă de declarare:

  • Declarație – Sintaxă:
  data_type[][] array_name = new data_type[x][y];   For example: int[][] arr = new int[10][20];>
  • Inițializare – Sintaxă:
  array_name[row_index][column_index] = value;   For example: arr[0][0] = 1;>

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

>

>

Ieșire

arr[0][0] = 1>

Exemplu: Implementarea matricei 2D cu valori implicite cu matrice 4*4

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

>

>

Ieșire

The 2D array is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>

Explicaţie:

  • Numărul de rânduri și coloane este specificat folosind variabilele rânduri și coloane. Matricea 2D este creată folosind operatorul nou, care alocă memorie pentru matrice. Mărimea matricei este specificată de rânduri și coloane.

Metoda directă de declarare: Sintaxă:

  data_type[][] array_name = {     {valueR1C1, valueR1C2, ....},      {valueR2C1, valueR2C2, ....}     };   For example: int[][] arr = {{1, 2}, {3, 4}};>

Exemplu:

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

>

>

Ieșire

arr[0][0] = 1 arr[0][1] = 2 arr[1][0] = 3 arr[1][1] = 4>

Accesarea elementelor matricelor bidimensionale

Elementele din rețele bidimensionale sunt de obicei menționate prin x[i][j] unde „i” este numărul rândului și „j” este numărul coloanei.

Sintaxă:

x[row_index][column_index]>

De exemplu:

int[][] arr = new int[10][20]; arr[0][0] = 1;>

Exemplul de mai sus reprezintă elementul prezent în primul rând și prima coloană. Notă : În matrice dacă dimensiunea matricei este N. Indicele său va fi de la 0 la N-1. Prin urmare, pentru row_index 2, numărul real al rândului este 2+1 = 3. Exemplu:

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

>

>

Ieșire

arr[0][0] = 1>

Reprezentarea matricei 2D în format tabelar:

O matrice bidimensională poate fi văzută ca un tabel cu rânduri „x” și coloane „y” unde numărul rândului variază de la 0 la (x-1) și numărul coloanei variază de la 0 la (y-1). O matrice bidimensională „x” cu 3 rânduri și 3 coloane este prezentată mai jos:

două-d

Imprimați matrice 2D în format tabelar:

Pentru a scoate toate elementele unui tablou bidimensional, utilizați bucle imbricate for. Pentru aceasta sunt necesare două bucle for, una pentru a traversa rândurile și alta pentru a traversa coloanele.

Exemplu:

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

>

>

Ieșire

1 2 3 4>

Exemplu: Implementarea matricei 2D cu intrarea utilizatorului

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

>

>

Ieșire

Enter number of rows: 3 Enter number of columns: 3 1 2 3  2 4 6  3 6 9>
  • Acest cod solicită utilizatorului să introducă numărul de rânduri și coloane pentru matricea bidimensională. Clasa Scanner este folosită pentru a citi intrarea utilizatorului. Apoi creează o matrice bidimensională de numere întregi cu numărul specificat de rânduri și coloane și atribuie fiecărui element al matricei cu i*j.
  • Dacă doriți să creați o matrice multidimensională cu mai mult de două dimensiuni, puteți utiliza aceeași abordare de a crea o matrice de matrice. De exemplu, pentru a crea o matrice 3-dimensională, puteți crea o matrice de matrice 2-dimensionale.

Matrice tridimensională (Matrice 3D)

Matricea tridimensională este o formă complexă a unei matrice multidimensionale. O matrice tridimensională poate fi văzută ca o matrice de matrice bidimensionale pentru o înțelegere mai ușoară.

Metoda indirectă de declarare:

  • Declarație – Sintaxă:
  data_type[][][] array_name = new data_type[x][y][z];   For example: int[][][] arr = new int[10][20][30];>
  • Inițializare – Sintaxă:
  array_name[array_index][row_index][column_index] = value;   For example: arr[0][0][0] = 1;>

Exemplu:

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

>

>

Ieșire

arr[0][0][0] = 1>

Metoda directă de declarare: Sintaxă:

  data_type[][][] array_name = {     {     {valueA1R1C1, valueA1R1C2, ....},      {valueA1R2C1, valueA1R2C2, ....}     },     {     {valueA2R1C1, valueA2R1C2, ....},      {valueA2R2C1, valueA2R2C2, ....}     }     };   For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };>

Exemplu:

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

>

>

Ieșire

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>

Accesarea elementelor de tablouri tridimensionale

Elementele din matrice tridimensionale sunt de obicei menționate prin x[i][j][k] unde „i” este numărul matricei, „j” este numărul rândului și „k” este numărul coloanei.

Sintaxă:

x[array_index][row_index][column_index]>

De exemplu:

int[][][] arr = new int[10][20][30]; arr[0][0][0] = 1;>

Exemplul de mai sus reprezintă elementul prezent în primul rând și prima coloană a primului tablou din tabloul 3D declarat.

Notă : În matrice dacă dimensiunea matricei este N. Indicele său va fi de la 0 la N-1. Prin urmare, pentru row_index 2, numărul real al rândului este 2+1 = 3.

Exemplu:

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

>

>

Ieșire

arr[0][0][0] = 1>

Reprezentarea matricei 3D în format tabelar:

O matrice tridimensională poate fi văzută ca un tabel de matrice cu rânduri „x” și coloane „y” unde numărul rândului variază de la 0 la (x-1) și numărul coloanei variază de la 0 la (y-1). O matrice tridimensională cu 3 matrice care conține 3 rânduri și 3 coloane este prezentată mai jos:

Imprimați matrice 3D în format tabelar:

Pentru a scoate toate elementele unui tablou tridimensional, utilizați bucle imbricate for. Pentru aceasta sunt necesare trei bucle for, una pentru a parcurge matrice, a doua pentru a traversa rândurile și alta pentru a parcurge coloanele.

Exemplu:

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

>

>

Ieșire

1 2 3 4 5 6 7 8>

Inserarea unui tablou multidimensional în timpul rulării:

Acest subiect este forțat n preluarea intrărilor definite de utilizator într-o matrice multidimensională în timpul rulării. Se concentrează pe utilizatorul care oferă mai întâi toate intrările programului în timpul rulării și după toate intrările introduse, programul va da rezultate pentru fiecare intrare în mod corespunzător. Este util atunci când utilizatorul dorește să introducă mai multe cazuri de testare cu mai multe valori diferite și după ce toate aceste lucruri sunt făcute, programul va începe să furnizeze rezultate. De exemplu, să găsim numărul total de numere pare și impare dintr-o matrice de intrare. Aici, vom folosi conceptul de matrice bidimensională.

Iată câteva puncte care explică utilizarea diferitelor elemente din codul viitor:

  • Numărul întreg de rând este considerat ca număr de cazuri de testare, iar valorile coloanei sunt considerate ca valori în fiecare caz de testare.
  • O buclă for() este folosită pentru actualizarea numărului Test-Case și o altă buclă for() este folosită pentru a lua valorile matricei respective.
  • Pe măsură ce toate intrările de intrare sunt făcute, din nou două bucle for() sunt folosite în același mod pentru a executa programul în conformitate cu condiția specificată.
  • Prima linie de intrare este numărul total de cazuri de test.
  • A doua linie arată numărul total de valori ale primei matrice.
  • A treia linie oferă valori ale matricei și așa mai departe.

Implementare:

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

>

ce este computerul

>

Ieșire:

  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>