In Java wird ein zweidimensionales Array als Array von Arrays betrachtet. Das heißt, ein zweidimensionales Array ist ein spezielles eindimensionales Array, und jedes Element des zweidimensionalen Arrays ist ein eindimensionales Array.
Datentyp des Elements [][] Name des Arrays = new Datentyp des Elements [Länge des zweidimensionalen Arrays][Länge des eindimensionalen Arrays];
int[][]arr=newint[3][2];
Die obige Situation stellt dar, dass es drei eindimensionale Arrays gibt und jedes eindimensionale Array zwei Elemente hat.
Datentyp des Elements [][] Name des Arrays = new Datentyp des Elements [Länge des zweidimensionalen Arrays][];
int[][]arr=newint[3][];
Die obige Situation stellt dar, dass es drei eindimensionale Arrays gibt, die Anzahl der Elemente in jedem eindimensionalen Array jedoch ungewiss ist und die Anzahl der Elemente in jedem eindimensionalen Array unterschiedlich sein kann.
Datentyp des Elements [][] Array-Name = {{Element 1, Element 2,…}, {Element 1, Element 2,…},…};
int[][]arr={{1,2,3},{4,5},{6,7,8,9}};
Die obige Situation stellt dar, dass es 3 eindimensionale Arrays gibt. Das erste eindimensionale Array hat 3 Elemente, das zweite eindimensionale Array hat 2 Elemente und das dritte eindimensionale Array hat jeweils 4 Elemente Ein eindimensionales Array kann unterschiedlich sein.
Es gibt zwei Formate zum Deklarieren eines zweidimensionalen Arrays:
Array-Elementtyp Array-Name[][];
Elementtyp des Arrays[][] Array-Name;
Zum Beispiel:
charcat[][];char[][]cat;
Die Initialisierung von zweidimensionalen Arrays ist die gleiche wie die von gleichdimensionalen Arrays. Es gibt zwei Möglichkeiten: dynamische Initialisierung und statische Initialisierung.
1) Zuerst deklarieren und dann statisch initialisieren
Datentyp des Elements [][] zweidimensionaler Array-Name; zweidimensionaler Array-Name = neuer Datentyp des Elements [][]{{Element 1, Element 2, Element 3,...},{Werteliste in der zweite Zeile}, …,{Liste der Werte in Zeile n}};
2) Statische Initialisierung während der Deklaration
Datentyp des Elements [][] Zweidimensionaler Array-Name = neuer Datentyp des Elements [][]{{Element 1, Element 2, Element 3,…},{Werteliste der zweiten Zeile},…,{nth Liste der Zeilenwerte }};
Hinweis : Zahlen können nicht in „[][]“ im „Datentyp des neuen Elements [][]“ rechts geschrieben werden, da die Anzahl der Zeilen und Spalten durch die Anzahl der Elemente in {} bestimmt wird.
3) Vereinfachte Schreibmethode der statischen Initialisierung gleichzeitig mit der Deklaration
Datentyp des Elements [][] Zweidimensionaler Array-Name = {{Element 1, Element 2, Element 3,…},{Werteliste in der zweiten Zeile},…,{Werteliste in der n-ten Zeile}};
Zum Beispiel:
publicclassMain{publicstaticvoidmain(String[]args){int[][]arr={{1,2,3},{4,5},{6}};//Array definieren System.out.println(arr[0 ][0]);//1System.out.println(arr[1][0]);//4System.out.println(arr[2][0]);//6System.out.println(arr[ 0][1]);//2System.out.println(arr[1][1]);//5System.out.println(arr[2][1]);//Außerhalb der Grenzen}}
Bei der dynamischen Initialisierung muss die Länge des eindimensionalen Arrays nicht angegeben werden. Daher kann die Länge jedes eindimensionalen Arrays unterschiedlich sein. Daher gibt es die folgenden zwei Initialisierungsmethoden.
1) Dynamische Initialisierung 1: Regel zweidimensionale Tabelle
Der Programmierer gibt die Länge des Arrays an und weist den Wert zu Beginn zu. Eine reguläre zweidimensionale Tabelle bedeutet, dass die Anzahl der Spalten in jeder Zeile gleich ist Das allgemeine Format lautet zunächst wie folgt: Bestimmen Sie zunächst die Anzahl der Zeilen und die Anzahl der Spalten:
Datentyp des Elements [][] Zweidimensionaler Array-Name = Datentyp des neuen Elements [m][n];
Wobei m angibt, wie viele eindimensionale Arrays es in diesem zweidimensionalen Array gibt oder wie viele Zeilen es in der zweidimensionalen Tabelle gibt; n gibt an, wie viele Elemente es in jedem eindimensionalen Array gibt oder wie viele Zellen es gibt sind in jeder Zeile.
Zu diesem Zeitpunkt wird das Array erstellt, die Anzahl der Zeilen und Spalten bestimmt und die Elemente haben Standardwerte. Weisen Sie dann den Elementen neue Werte zu:
Zweidimensionaler Array-Name[Zeilenindex][Spaltenindex]=Wert;
Zum Beispiel:
publicclassMain{publicstaticvoidmain(String[]args){int[][]arr=newint[3][2];/*Definieren Sie ein zweidimensionales Array arr. Dieses zweidimensionale Array hat jeweils drei eindimensionale Array-Elemente -dimensionales Array Es gibt 2 Elemente */System.out.println(arr);//Gib den Namen des zweidimensionalen Arrays aus System.out.println(arr[0]);//Gib den Namen des ersten Elements aus des zweidimensionalen Arrays und der Name des eindimensionalen Arrays System.out.println(arr[0][0]);//Die Elemente des zweidimensionalen Arrays ausgeben}}
2) Dynamische Initialisierung 2: unregelmäßige zweidimensionale Tabelle
Eine unregelmäßige zweidimensionale Tabelle bedeutet, dass die Anzahl der Spalten in jeder Zeile unterschiedlich sein kann. Ihr allgemeines Format ist wie folgt. Bestimmen Sie zunächst die Gesamtzahl der Zeilen.
Datentyp des Elements [][] Name des zweidimensionalen Arrays = Datentyp des neuen Elements [Gesamtzahl der Zeilen][];
Zu diesem Zeitpunkt wird nur die Gesamtzahl der Zeilen bestimmt, und jede Zeile ist jetzt null. Dann wird die Anzahl der Spalten in jeder Zeile bestimmt und ein eindimensionales Array jeder Zeile erstellt:
Zweidimensionaler Array-Name [Zeilenindex] = Datentyp des neuen Elements [Gesamtzahl der Spalten in der Zeile];
Zu diesem Zeitpunkt haben die Elemente der Zeilen, die new übergeben werden, Standardwerte, und die Zeilen, die new nicht übergeben, sind immer noch null. Schließlich wird den Elementen ein Wert zugewiesen:
Zweidimensionaler Array-Name[Zeilenindex][Spaltenindex]=Wert;
Hinweis : Unregelmäßige zweidimensionale Tabellen können nach der Deklaration beim Initialisieren des internen eindimensionalen Arrays nicht abgekürzt werden.
//Unregelmäßige zweidimensionale Tabelle definiert zweidimensionales Array int[][]arr=newint[3][]; //3 Zeilen, unbekannte Spalten //Initialisieren Sie den Elementwert im zweidimensionalen Array arr[0]= newint[ ]{1};//Dies kann nicht als arr[0]={1}arr[1]=newint[]{2,3};arr[2]=newint[]{4,5,6 abgekürzt werden };
Das Durchlaufen eines zweidimensionalen Arrays ist das gleiche wie das eines eindimensionalen Arrays. Der Unterschied besteht darin, dass zum Durchlaufen jedes eindimensionalen Arrays zunächst eine äußere Schleife erforderlich ist.
for(inti=0;i<zweidimensionales Array name.length;i++){for(intj=0;j<zweidimensionales Array name[i].length;j++){System.out.print(two-dimensional Array-Name[ i][j]);}System.out.println();}