Durch die Studie im vorherigen Abschnitt wissen wir, dass es in Java kein Konzept für mehrdimensionale Arrays gibt, sondern nur für eindimensionale Arrays. Wir können mehrdimensionale Arrays als Arrays von Arrays verstehen, sodass ein unregelmäßiges Array abgeleitet wird.
Beispielsweise hat ein reguläres zweidimensionales 4×3-Array 12 Elemente, aber ein unregelmäßiges zweidimensionales 4×3-Array hat nicht unbedingt so viele Elemente. Initialisieren Sie beispielsweise statisch ein unregelmäßiges Array:
intArray[][]={{1,2},{3},{4,5,6},{7,8}};
Wir nennen Arrays mit zwei Dimensionen und mehr hochdimensionale Arrays. Dann hat das hochdimensionale Array oben 4 Elemente, aber die Anzahl der Elemente des niedrigdimensionalen Arrays ist unterschiedlich. Das erste Array hat 2 Elemente und das zweite Array hat 1 Element, das 3. Array hat 3 Elemente und das 4. Array hat 2 Elemente. Dies nennen wir ein unregelmäßiges Array.
Das dynamische Initialisieren eines unregelmäßigen Arrays ist etwas schwieriger. Die Anweisung new int[4][3] kann nicht direkt verwendet werden. Wir müssen zuerst das hochdimensionale Array initialisieren und dann das niedrigdimensionale Array separat initialisieren.
intArray[][]=newint[4][];//Initialisieren Sie zuerst das hochdimensionale Array bis 4Array[0]=newint[2];//Initialisieren Sie das niedrigdimensionale Array Array[1]=newint[1] ;Array[ eins nach dem anderen 2]=newint[3];Array[3]=newint[2];
Nachdem der obige Code das Array initialisiert hat, können wir dann wissen, dass es nicht 12 Elemente, sondern nur 8 Elemente gibt, wobei die Indizes [0][2], [1][1], [1][2] und [ 3][2] existiert nicht. Wenn wir versuchen, darauf zuzugreifen, wird eine Subskriptausnahme außerhalb der Grenzen ausgelöst.
Hinweis : Die Subskript-Ausnahme außerhalb der Grenzen (ArrayIndexOutOfBoundsException) wird ausgelöst, wenn versucht wird, auf ein nicht vorhandenes Subskript zuzugreifen. Angenommen, ein eindimensionales Array Array hat 12 Elemente, dann verursacht der Ausdruck Array[12] eine Subskript-Ausnahme außerhalb der Grenzen. Dies liegt daran, dass der Array-Index bei 0 beginnt und der Index des letzten Elements sein sollte Array-Länge minus Array-Länge 1, daher existiert das Element, auf das Array[12] zugreift, nicht.