1. Arrays im Speicher
In den vorherigen Beispielen waren die Abbildungen etwas ungenau.
Beim Erstellen von Arrays (wie auch beim Erstellen von Strings) werden zwei separate Speicherblöcke zugewiesen: einer zum Speichern des Arrays (Containers) selbst und ein zweiter Block für die Variable, die ihre Adresse speichert . Das Bild unten stellt diese Klarstellung dar:
Der für das Elementarray zugewiesene Speicher 10
int
und die Variable, die die Adresse des Arrays int[]
speichert , werden grün angezeigt.int
Zum Vergleich ist eine gewöhnliche int
Variable, die den Wert speichert, 199
blau dargestellt.
Das erinnert ein wenig an das Speichern von Strings im Speicher, finden Sie nicht?
Genau, Saiten. Und genau wie beim Arbeiten mit Strings können Sie Array-Variablen einander zuweisen:
Code | Erläuterung |
---|---|
|
Erstellen Sie ein Array von 10 int Elementen. Weisen Sie der Zelle mit dem Index den Wert zu . Weisen Sie der Zelle mit dem Index den Wert zu . Speichern Sie in der Variablen die in der Variablen gespeicherte Adresse . Zeigen Sie nun auf dasselbe Array-Objekt im Speicher. Schreiben Sie in die Zelle des Array-Objekts mit dem Index die Summe der Werte, die in den Zellen (die den Wert speichern ) und (die den Wert speichern ) gespeichert sind. 4 2 9 7 b a a b 9 2 4 7 9 |
Das Array-Objekt bleibt genau dort, wo es war, und die Variablen a
und b
speichern dieselbe Adresse (Referenz) auf dasselbe Objekt. Sehen Sie das Bild an:

2. Weitere Details zum Arbeiten mit Arrays
Sie können ein Array von Elementen absolut beliebiger Art erstellen. Schreiben Sie dazu einfach eckige Klammern hinter den Typnamen. Im Allgemeinen sieht das Erstellen eines Arrays so aus:
type[] name = new type[number];
Dabei ist Typ der Typ der Elemente, die wir im Array speichern. Name ist der Name der Variablen, mit der wir auf das Array verweisen, und Zahl ist die Anzahl der Zellen im Array.
Das obige Beispiel ist die kanonische Form zum Erstellen einer Array-Variablen und eines Array-Objekts. In Wirklichkeit handelt es sich hierbei um zwei getrennte Einheiten.
Sie können eine Array-Variable separat von einem Array-Objekt erstellen:
type[] name;
name = new type[number];
Und noch ein Punkt, der nicht unerheblich ist:
Beispiele:
Code | Erläuterung |
---|---|
|
Erstellen Sie ein Array von n Elementen |
|
Erstellen Sie ein Array mit 203 Elementen |
|
|
0..99
zuzugreifen
ArrayIndexOfBoundException
, was bedeutet, dass der Index außerhalb der Grenzen des Arrays lag.
3. Array-Länge
Wie Sie im vorherigen Beispiel gesehen haben, können Sie eine Array-Variable selbst erstellen und ihr später irgendwo im Code einen Wert (einen Verweis auf ein Array-Objekt) zuweisen. Sie können sogar Folgendes tun:
Code | Erläuterung |
---|---|
|
Erstellen Sie eine Array-Variable vom Typ. int[] Wenn die a Variable kleiner als ist 10 , erstellen Sie ein Array von 10 Elementen. Andernfalls erstellen Sie ein Array von 20 Elementen |
Und was kann man nun noch mit einem solchen Array machen? Woher wissen Sie, wie viele Elemente darin enthalten sind?
Um dies zu erleichtern, verfügen Arrays über eine spezielle Eigenschaft (Variable) mit dem Namen length
. Mit diesem Ausdruck können Sie die Länge eines Arrays ermitteln:
array.length;
Hier array
ist der Name der Array-Variablen und length
der Name der Array-Eigenschaft. Der Wert der length
Eigenschaft kann nicht geändert werden: Die length
Eigenschaft selbst kann anderen Variablen zugewiesen werden, ihr kann jedoch nichts zugewiesen werden (wenn Sie dies versuchen, wird das Programm einfach nicht kompiliert).
Wir können mit dem vorherigen Beispiel wie folgt fortfahren:
Code | Erläuterung |
---|---|
|
Erstellen Sie eine Array-Variable vom Typ. int[] Wenn die a Variable kleiner als ist 10 , erstellen Sie ein Array von 10 Elementen. Andernfalls erstellen Sie ein Array von 20 Elementen. Schleife über alle Elemente des Arrays: von 0 bis Längearray.length - 1 |
4. Zusammenfassung der Fakten zu Arrays in Java
Fassen wir noch einmal zusammen, was wir über Arrays wissen:
Fakt 1. Ein Array besteht aus vielen Zellen.
Fakt 2: Sie greifen auf eine bestimmte Zelle zu, indem Sie deren Nummer (Index) verwenden.
Fakt 3. Alle Zellen sind vom gleichen Typ.
Fakt 4. Der Anfangswert aller Zellen ist 0 (wenn die Zellen Zahlen speichern), null
(wenn die Zellen Objektreferenzen speichern) oder false
(wenn die Zellen boolean
Werte speichern). In diesem Kapitel erfahren Sie mehr über Standardwerte .
Fakt 5. String[] list
ist nur die Deklaration einer Variablen. Dadurch wird nicht der Container (Array-Objekt) selbst erstellt. Um die Variable zu verwenden, müssen Sie zunächst ein Array (Container) erstellen und es der Variablen zuweisen. Siehe das Beispiel unten.
Fakt 6. Wenn wir ein Array-Objekt (Container) erstellen, müssen wir angeben, wie groß es ist, dh wie viele Zellen es enthält. Dies geschieht mit einer Anweisung wie: new TypeName[n]
;
Fakt 7. Die Länge eines Arrays kann mithilfe der .length
Eigenschaft ermittelt werden.
Fakt 8: Nachdem Sie ein Array erstellt haben, können Sie den Typ seiner Elemente oder die Anzahl der darin gespeicherten Elemente nicht mehr ändern.
Code | Erläuterung |
---|---|
|
s ist null list istnull |
|
Die list Variable speichert einen Verweis auf ein Objekt: ein String-Array bestehend aus 10 Elementen. n Ist10 |
|
Now |
|
Es wird eine Ausnahme (Programmfehler) ausgelöst, dh das Programm stürzt ab. list speichert einen Verweis aufnull |
|
Es wird eine Array-Out-of-Bounds-Ausnahme (Programmfehler) generiert. Wenn a Elemente/Zellen list speichert 10 , sind die gültigen Indizes: 0 1 2 3 4 5 6 7 8 9 – 10 Elemente. |
GO TO FULL VERSION