Array-Grundlagen in Java
Multidimensionale Arrays können in einfachen Worten als Array von Arrays definiert werden. Daten in mehrdimensionalen Arrays werden in tabellarischer Form (in Zeilenhauptordnung) gespeichert.

Syntax:

Datentyp [1. Dimension][2. Dimension][]..[N. Dimension] array_name = neu data_type [size1][size2]….[sizeN];

wo:

  • data_type : Datentyp, der im Array gespeichert werden soll. Zum Beispiel: int, char usw.
  • Abmessungen : Die Dimension des erstellten Arrays.
    Zum Beispiel: 1D, 2D usw.
  • array_name : Name des Arrays
  • size1, size2, …, sizeN : Größen der jeweiligen Dimensionen.

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 berechnet werden, indem die Größe aller Dimensionen multipliziert wird.

Beispiel:
Das Array int[][] x = new int[10][20] kann insgesamt (10*20) = 200 Elemente speichern.
Ähnlich kann array int[][][] x = new int[5][10][20] insgesamt (5*10*20) = 1000 Elemente speichern.

Zwei – dimensionales Array (2D-Array)

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

Indirekte Deklarationsmethode:

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

Beispiel:

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

Direkte Deklarationsmethode:

Syntax:


data_type[][] array_name = {
                             {valueR1C1, valueR1C2, ....}, 
                             {valueR2C1, valueR2C2, ....}
                           };

For example: int[][] arr = {{1, 2}, {3, 4}};

Beispiel:

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

Elemente in zweidimensionalen Arrays werden üblicherweise mit x[i][j] bezeichnet , wobei „i“ die Zeilennummer und „j“ die Spaltennummer ist.

Syntax:

x[row_index][column_index]

Beispielsweise:

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.

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

Beispiel:

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 angesehen werden, wobei die Zeilennummer von 0 bis (x-1) und die Spaltennummer von 0 bis ( y-1). Ein zweidimensionales Array „x“ mit 3 Zeilen und 3 Spalten ist unten dargestellt:

zweid

2D-Array im Tabellenformat drucken:

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

Beispiel:

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();
        }
    }
}
Ausgabe:
1 2
3 4

Dreidimensionales Array (3D-Array)

Ein dreidimensionales Array ist eine komplexe Form eines mehrdimensionalen Arrays. Ein dreidimensionales Array kann zum leichteren Verständnis als ein Array aus zweidimensionalen Arrays angesehen werden.

Indirekte Deklarationsmethode:

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

Beispiel:

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:


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:

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 x[i][j][k] bezeichnet, wobei 'i' die Array-Nummer, 'j' die Zeilennummer und 'k' die Spaltennummer ist.

Syntax:

x[array_index][row_index][column_index]

Beispielsweise:

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.

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

Beispiel:

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 eines 3D-Arrays im Tabellenformat: Ein dreidimensionales Array kann als Tabellen von Arrays mit „x“ Zeilen und „y“ Spalten angesehen werden, wobei die Zeilennummer von 0 bis (x-1) und die Spaltennummer von 0 reicht bis (y-1). Ein dreidimensionales Array mit 3 Arrays, die 3 Zeilen und 3 Spalten enthalten, ist unten dargestellt:

3D-Array im Tabellenformat drucken:

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

Beispiel:

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 während der Laufzeit:
Dieses Thema wird gezwungen, benutzerdefinierte Eingaben während der Laufzeit in ein mehrdimensionales Array zu übernehmen. Es konzentriert sich darauf, dass der Benutzer während der Laufzeit zuerst alle Eingaben in das Programm eingibt und nach allen eingegebenen Eingaben gibt das Programm eine Ausgabe in Bezug auf jede Eingabe entsprechend aus. Dies ist nützlich, wenn der Benutzer zunächst Eingaben für mehrere Testfälle mit mehreren unterschiedlichen Werten vornehmen möchte und nach all diesen Aufgaben das Programm mit der Ausgabe beginnt.

Lassen Sie uns als Beispiel die Gesamtzahl der geraden und ungeraden Zahlen in einem Eingabearray finden. Hier verwenden wir das Konzept eines zweidimensionalen Arrays. Hier sind einige Punkte, die die Verwendung der verschiedenen Elemente im kommenden Code erläutern:

  • Die Zeilen-Ganzzahl wird als Anzahl der Testfälle betrachtet und die Spaltenwerte werden als Werte in jedem Testfall betrachtet.
  • Eine for()-Schleife wird zum Aktualisieren der Testfallnummer verwendet, und eine andere for()-Schleife wird zum Erfassen entsprechender Array-Werte verwendet.
  • Nachdem alle Eingaben vorgenommen wurden, werden wieder 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 an und so weiter.

Implementierung:

import java.util.Scanner;
  
public 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 < arrayMain.length; i++) {
            eachTestCaseValues = scanner.nextInt();
            arrayMain[i] = new int[eachTestCaseValues];
            for (int j = 0; j < arrayMain[i].length; j++) {
                arrayMain[i][j] = scanner.nextInt();
            }
        } // All input entry is done.
  
        // Start executing output
        // according to condition provided
        for (int i = 0; i < arrayMain.length; 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 < arrayMain[i].length; 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.
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

Falls Sie an Live-Kursen mit Experten teilnehmen möchten , beziehen Sie sich bitte auf DSA Live-Kurse für Berufstätige und Competitive Programming Live for Students .