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 intund die Variable, die die Adresse des Arrays int[]speichert , werden grün angezeigt.int
Zum Vergleich ist eine gewöhnliche intVariable, die den Wert speichert, 199blau 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 intElementen. 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. 4297baab92479 |
Das Array-Objekt bleibt genau dort, wo es war, und die Variablen aund bspeichern 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 nElementen |
|
Erstellen Sie ein Array mit 203Elementen |
|
|
0..99zuzugreifen
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 aVariable kleiner als ist 10, erstellen Sie ein Array von 10Elementen. Andernfalls erstellen Sie ein Array von 20Elementen |
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 arrayist der Name der Array-Variablen und lengthder Name der Array-Eigenschaft. Der Wert der lengthEigenschaft kann nicht geändert werden: Die lengthEigenschaft 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 aVariable kleiner als ist 10, erstellen Sie ein Array von 10Elementen. Andernfalls erstellen Sie ein Array von 20Elementen. Schleife über alle Elemente des Arrays: von 0bis 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 booleanWerte 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 .lengthEigenschaft 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 |
|---|---|
|
sist nulllististnull |
|
Die listVariable speichert einen Verweis auf ein Objekt: ein String-Array bestehend aus 10Elementen. nIst10 |
|
Now |
|
Es wird eine Ausnahme (Programmfehler) ausgelöst, dh das Programm stürzt ab. listspeichert einen Verweis aufnull |
|
Es wird eine Array-Out-of-Bounds-Ausnahme (Programmfehler) generiert. Wenn a Elemente/Zellen listspeichert 10, sind die gültigen Indizes: 0 1 2 3 4 5 6 7 8 9– 10Elemente. |
GO TO FULL VERSION