logo

Mehrdimensionale Arrays in Java

Array-Grundlagen in Java Mehrdimensionale Arrays kann in einfachen Worten als Array von Arrays definiert werden. Daten in mehrdimensionalen Arrays werden in tabellarischer Form (in der Reihenfolge der Zeilen) gespeichert.

Syntax:



Datentyp [1. Dimension][2. Dimension][]..[N-te Dimension] array_name = neuer Datentyp [Größe1][Größe2]….[GrößeN];

Wo:

  • Datentyp : Art der Daten, die im Array gespeichert werden sollen. Zum Beispiel: int, char usw.
  • Abmessungen : Die Dimension des erstellten Arrays. Zum Beispiel: 1D, 2D usw.
  • Array-Name : Name des Arrays
  • Größe1, Größe2, …, GrößeN : Größen der jeweiligen Abmessungen.

Beispiele:



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

Größe mehrdimensionaler Arrays : Die Gesamtzahl der Elemente, die in einem mehrdimensionalen Array gespeichert werden können, kann durch Multiplikation der Größe aller Dimensionen berechnet werden.

Zum Beispiel: Das Array int[][] x = neues int[10][20] kann insgesamt (10*20) = 200 Elemente speichern. Ebenso Array int[][][] x = neues int[5][10][20] kann insgesamt (5*10*20) = 1000 Elemente speichern.

Anwendung eines mehrdimensionalen Arrays

● Mehrdimensionale Arrays werden verwendet, um die Daten in tabellarischer Form zu speichern. Beispielsweise kann die Speicherung der Rollennummer und der Noten eines Schülers mithilfe mehrdimensionaler Arrays problemlos erfolgen. Eine weitere häufige Verwendung besteht darin, die Bilder in 3D-Arrays zu speichern.



● Bei dynamischen Programmierfragen werden mehrdimensionale Arrays verwendet, die zur Darstellung der Problemzustände dienen.

● Abgesehen davon finden sie auch Anwendung bei vielen Standardalgorithmusproblemen wie: Matrixmultiplikation, Adjazenzmatrixdarstellung in Diagrammen, Gittersuchprobleme

Zweidimensionales Array (2D-Array)

Ein zweidimensionales Array ist die einfachste Form eines mehrdimensionalen Arrays. Ein zweidimensionales Array kann zum leichteren Verständnis als Array eines eindimensionalen Arrays betrachtet werden.

Indirekte Deklarationsmethode:

  • Deklaration – Syntax:
  data_type[][] array_name = new data_type[x][y];   For example: int[][] arr = new int[10][20];>
  • Initialisierung – Syntax:
  array_name[row_index][column_index] = value;   For example: arr[0][0] = 1;>

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

>

>

Ausgabe

arr[0][0] = 1>

Beispiel: Implementierung eines 2D-Arrays mit Standardwerten mit einer 4*4-Matrix

Java


Pete Davidson



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

>

>

Ausgabe

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

Erläuterung:

  • Die Anzahl der Zeilen und Spalten wird über die Variablen rows und columns angegeben. Das 2D-Array wird mit dem neuen Operator erstellt, der dem Array Speicher zuweist. Die Größe des Arrays wird durch Zeilen und Spalten angegeben.

Direkte Deklarationsmethode: Syntax:

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

Beispiel:

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

>

>

Ausgabe

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

Zugriff auf Elemente zweidimensionaler Arrays

Auf Elemente in zweidimensionalen Arrays wird üblicherweise verwiesen x[i][j] Dabei ist „i“ die Zeilennummer und „j“ die Spaltennummer.

Syntax:

x[row_index][column_index]>

Zum Beispiel:

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

Das obige Beispiel stellt das Element dar, das in der ersten Zeile und der ersten Spalte vorhanden ist. Notiz : In Arrays, wenn die Größe des Arrays N ist. Sein Index liegt zwischen 0 und N-1. Daher ist für row_index 2 die tatsächliche Zeilennummer 2+1 = 3. Beispiel:

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

>

>

Ausgabe

arr[0][0] = 1>

Darstellung eines 2D-Arrays im Tabellenformat:

Ein zweidimensionales Array kann als Tabelle mit „x“-Zeilen und „y“-Spalten betrachtet werden, wobei die Zeilennummer zwischen 0 und (x-1) und die Spaltennummer zwischen 0 und (y-1) liegt. Unten ist ein zweidimensionales Array „x“ mit 3 Zeilen und 3 Spalten dargestellt:

zwei-d

2D-Array im Tabellenformat drucken:

Um alle Elemente eines zweidimensionalen Arrays auszugeben, verwenden Sie verschachtelte for-Schleifen. Hierzu sind zwei for-Schleifen erforderlich, eine zum Durchlaufen der Zeilen und eine weitere zum Durchlaufen von Spalten.

Beispiel:

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

Rekha-Indianer

>

>

Ausgabe

1 2 3 4>

Beispiel: Implementierung eines 2D-Arrays mit Benutzereingabe

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

>

>

Ausgabe

Enter number of rows: 3 Enter number of columns: 3 1 2 3  2 4 6  3 6 9>
  • Dieser Code fordert den Benutzer auf, die Anzahl der Zeilen und Spalten für das zweidimensionale Array einzugeben. Die Scanner-Klasse wird zum Lesen der Benutzereingaben verwendet. Anschließend wird ein zweidimensionales Array von Ganzzahlen mit der angegebenen Anzahl von Zeilen und Spalten erstellt und jedem Element des Arrays i*j zugewiesen.
  • Wenn Sie ein mehrdimensionales Array mit mehr als zwei Dimensionen erstellen möchten, können Sie den gleichen Ansatz wie beim Erstellen eines Arrays aus Arrays verwenden. Um beispielsweise ein dreidimensionales Array zu erstellen, können Sie ein Array aus zweidimensionalen Arrays erstellen.

Dreidimensionales Array (3D-Array)

Dreidimensionales Array ist eine komplexe Form eines mehrdimensionalen Arrays. Ein dreidimensionales Array kann zum leichteren Verständnis als Array zweidimensionaler Arrays betrachtet werden.

Indirekte Deklarationsmethode:

  • Deklaration – Syntax:
  data_type[][][] array_name = new data_type[x][y][z];   For example: int[][][] arr = new int[10][20][30];>
  • Initialisierung – Syntax:
  array_name[array_index][row_index][column_index] = value;   For example: arr[0][0][0] = 1;>

Beispiel:

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

>

>

Ausgabe

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

Direkte Deklarationsmethode: Syntax:

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

Beispiel:

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

>

>

Ausgabe

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>

Zugriff auf Elemente dreidimensionaler Arrays

Elemente in dreidimensionalen Arrays werden üblicherweise mit bezeichnet x[i][j][k] Dabei ist „i“ die Array-Nummer, „j“ die Zeilennummer und „k“ die Spaltennummer.

Syntax:

x[array_index][row_index][column_index]>

Zum Beispiel:

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

Das obige Beispiel stellt das Element dar, das in der ersten Zeile und ersten Spalte des ersten Arrays im deklarierten 3D-Array vorhanden ist.

Notiz : In Arrays, wenn die Größe des Arrays N ist. Sein Index liegt zwischen 0 und N-1. Daher ist für row_index 2 die tatsächliche Zeilennummer 2+1 = 3.

Beispiel:

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

>

>

Ausgabe

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

Darstellung des 3D-Arrays im Tabellenformat:

Ein dreidimensionales Array kann als Tabelle von Arrays mit „x“-Zeilen und „y“-Spalten betrachtet werden, wobei die Zeilennummer zwischen 0 und (x-1) und die Spaltennummer zwischen 0 und (y-1) liegt. Unten ist ein dreidimensionales Array mit 3 Arrays mit 3 Zeilen und 3 Spalten dargestellt:

3D-Array im Tabellenformat drucken:

Um alle Elemente eines dreidimensionalen Arrays auszugeben, verwenden Sie verschachtelte for-Schleifen. Hierzu sind drei for-Schleifen erforderlich: Eine zum Durchlaufen der Arrays, eine zweite zum Durchlaufen der Zeilen und eine weitere zum Durchlaufen von Spalten.

Beispiel:

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

>

>

Ausgabe

1 2 3 4 5 6 7 8>

Einfügen eines mehrdimensionalen Arrays zur Laufzeit:

In diesem Thema wird die Übernahme benutzerdefinierter Eingaben in ein mehrdimensionales Array zur Laufzeit erzwungen. Der Schwerpunkt liegt darauf, dass der Benutzer während der Laufzeit zunächst alle Eingaben in das Programm eingibt und nach allen eingegebenen Eingaben das Programm eine Ausgabe für jede Eingabe entsprechend ausgibt. Dies ist nützlich, wenn der Benutzer zunächst Eingaben für mehrere Testfälle mit mehreren unterschiedlichen Werten vornehmen möchte und das Programm nach Abschluss all dieser Dinge mit der Ausgabe beginnt. Lassen Sie uns als Beispiel die Gesamtzahl der geraden und ungeraden Zahlen in einem Eingabearray ermitteln. Hier verwenden wir das Konzept eines zweidimensionalen Arrays.

Hier sind einige Punkte, die die Verwendung der verschiedenen Elemente im kommenden Code erläutern:

  • Die Ganzzahl der Zeile wird als die Anzahl der Testfälle betrachtet, und die Spaltenwerte werden als Werte in jedem Testfall betrachtet.
  • Eine for()-Schleife wird zum Aktualisieren der Testfallnummer und eine weitere for()-Schleife zum Erfassen der jeweiligen Array-Werte verwendet.
  • Nachdem alle Eingaben abgeschlossen sind, werden erneut zwei for()-Schleifen auf die gleiche Weise verwendet, um das Programm gemäß der angegebenen Bedingung auszuführen.
  • Die erste Eingabezeile ist die Gesamtzahl der Testfälle.
  • Die zweite Zeile zeigt die Gesamtzahl der ersten Array-Werte.
  • Die dritte Zeile gibt Array-Werte usw. an.

Implementierung:

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

Java wechseln

>

>

Ausgabe:

  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>