Erwägen:
int[][] multD = new int[5][];
multD[0] = new int[10];
Erstellen Sie auf diese Weise ein zweidimensionales Array mit 5 Zeilen und 10 Spalten?
Ich habe diesen Code online gesehen, aber die Syntax ergab keinen Sinn.
java
multidimensional-array
AppSensei
quelle
quelle
Antworten:
Versuche Folgendes:
... was für so etwas eine kurze Hand ist:
Beachten Sie, dass jedes Element wird auf den Standardwert initialisiert werden
int
,0
so die oben auch gleichwertig sind:quelle
new int[][]
in=new int[][]{...}
Variante verwenden? Können wir einfach schreiben={...}
?new
Schlüsselworts zugewiesen .int array[][] = new int[3][];
VSint array[][] = new int[][3];
? Welches ist legal, da ich beide Versionen irgendwo gelesen habe.Wir können ein zweidimensionales Array deklarieren und Elemente zum Zeitpunkt seiner Deklaration direkt speichern als:
Hier steht int für Elemente vom Typ Integer, die im Array gespeichert sind, und der Array-Name lautet 'Markierungen'. int ist der Datentyp für alle Elemente, die in den Klammern "{" und "}" dargestellt werden, da ein Array eine Sammlung von Elementen mit demselben Datentyp ist.
Zurück zu unserer obigen Aussage: Jede Reihe von Elementen sollte in geschweiften Klammern stehen. Die Zeilen und Elemente in jeder Zeile sollten durch Kommas getrennt werden.
Beachten Sie nun die Aussage: Sie können 3 Zeilen und 5 Spalten erhalten, sodass die JVM 3 * 5 = 15 Speicherblöcke erstellt. Diese Blöcke können einzeln bezeichnet werden als:
HINWEIS:
Wenn Sie n Elemente speichern möchten, beginnt der Array-Index bei Null und endet bei n-1 . Eine andere Möglichkeit, ein zweidimensionales Array zu erstellen, besteht darin, das Array zuerst zu deklarieren und dann mithilfe eines neuen Operators Speicher zuzuweisen.
Durch die Kombination der beiden oben genannten können wir schreiben:
quelle
Sie können sie genau so erstellen, wie andere es erwähnt haben. Noch ein Punkt, den Sie hinzufügen sollten: Sie können sogar mit jeder Zeile ein verzerrtes zweidimensionales Array erstellen, das nicht unbedingt die gleiche Anzahl von Spalten aufweist, wie folgt:
quelle
int array[][] = new int[3][];
VSint array[][] = new int[][3];
? Welches ist legal, da ich beide Versionen irgendwo gelesen habe.Die gebräuchlichste Redewendung zum Erstellen eines zweidimensionalen Arrays mit 5 Zeilen und 10 Spalten lautet:
Alternativ können Sie Folgendes verwenden, das dem, was Sie haben, ähnlicher ist, obwohl Sie jede Zeile explizit initialisieren müssen:
quelle
Object[][] ary2d = new Object[5][10];
müssen Sie dennoch jedes Element des 2D-Arrays initialisieren.null
Fall sicher für Nicht-Grundelemente. Ob Sie jedes Element initialisieren sollten oder nicht, hängt vollständig von Ihrem Design ab. Nur zur Verdeutlichung: Grundelemente können nicht null sein und werden auf einen definierten Standardwert instanziiert, wenn sie nicht von Ihnen zugewiesen wurden. ZBint
kann nicht null sein, und wenn Sie sagen,int i;
ohne einen Wert zuzuweisen, wird der Standardwert von0
verwendet. Lesen Sie hier darüberEs ist auch möglich, es folgendermaßen zu deklarieren. Es ist kein gutes Design, aber es funktioniert.
quelle
Versuchen:
Beachten Sie, dass in Ihrem Code nur die erste Zeile des 2D-Arrays auf 0 initialisiert wird. Die Zeilen 2 bis 5 sind nicht einmal vorhanden. Wenn Sie versuchen, sie zu drucken, erhalten Sie
null
für jeden von ihnen.quelle
quelle
In Java kann ein zweidimensionales Array als dasselbe wie ein eindimensionales Array deklariert werden. In einem eindimensionalen Array können Sie wie schreiben
Dabei ist int ein Datentyp, array [] eine Array-Deklaration und
new array
ein Array mit seinen Objekten mit fünf Indizes.Auf diese Weise können Sie ein zweidimensionales Array wie folgt schreiben.
Hier
array
ist ein int-Datentyp. Ich habe zuerst ein eindimensionales Array dieses Typs deklariert, dann wird ein 3-Zeilen- und 4-Spalten-Array erstellt.In deinem Code
bedeutet, dass Sie ein zweidimensionales Array mit fünf Zeilen erstellt haben. In der ersten Zeile befinden sich 10 Spalten. In Java können Sie die Spaltengröße für jede Zeile nach Ihren Wünschen auswählen.
quelle
Genießen!
quelle
Versuchen Sie Folgendes:
quelle
Diese Arten von Arrays werden in Java als gezackte Arrays bezeichnet:
In diesem Szenario enthält jede Zeile des Arrays die unterschiedliche Anzahl von Spalten. Im obigen Beispiel enthält die erste Zeile drei Spalten, die zweite Zeile zwei Spalten und die dritte Zeile fünf Spalten. Sie können dieses Array zur Kompilierungszeit wie folgt initialisieren:
Sie können alle Elemente in Ihrem Array einfach iterieren:
quelle
Tatsächlich hat Java kein mehrdimensionales Array im mathematischen Sinne. Was Java hat, ist nur ein Array von Arrays, ein Array, in dem jedes Element auch ein Array ist. Aus diesem Grund ist die Größe der ersten Dimension die absolute Voraussetzung für die Initialisierung. Wenn der Rest angegeben ist, wird ein Array mit dem Standardwert erstellt.
Es gibt uns auch eine Eigenart. Die Größe des Unterarrays kann nicht durch Hinzufügen weiterer Elemente geändert werden. Wir können dies jedoch tun, indem wir ein neues Array mit beliebiger Größe zuweisen.
quelle