JavaRush /Java-Blog /Random-DE /Arrays in Java

Arrays in Java

Veröffentlicht in der Gruppe Random-DE
Stellen Sie sich Zellen in einem Lagerraum vor. Jeder hat seine eigene Nummer und jeder enthält eine Art „Gepäck“-Objekt. Oder eine Weinkarte, in der alle Weinsorten nummeriert sind und Sie bei der Bestellung lediglich die Nummer des Getränks angeben müssen. Oder eine Liste der Schüler einer Gruppe, in deren erster Zelle der Schüler „Andreev“ und in der letzten Zelle „Yakovlev“ steht. Oder eine Liste von Flugzeugpassagieren, denen jeweils ein Sitzplatz mit einer bestimmten Nummer zugewiesen wird. Um mit ähnlichen Strukturen, also vielen homogenen Daten, zu arbeiten, werden in Java häufig Arrays verwendet.

Was ist ein Array?

Ein Array ist eine Datenstruktur, die Elemente desselben Typs speichert. Man kann es sich als eine Reihe nummerierter Zellen vorstellen, von denen jede einige Daten enthalten kann (ein Datenelement pro Zelle). Der Zugriff auf eine bestimmte Zelle erfolgt über deren Nummer. Die Nummer eines Elements in einem Array wird auch als Index bezeichnet . Im Fall von Java ist das Array homogen, das heißt, alle seine Zellen speichern Elemente desselben Typs. Ein Array aus Ganzzahlen enthält also nur Ganzzahlen (z. B. vom Typ int ), ein Array aus Strings enthält nur Strings und ein Array aus Elementen der von uns erstellten Dog -Klasse enthält nur Dog -Objekte . Das heißt, in Java können wir keine Ganzzahl in die erste Zelle eines Arrays, einen String in die zweite und einen „Hund“ in die dritte einfügen. Arrays in Java

Array-Deklaration

Wie deklariere ich ein Array?

Wie jede Variable muss auch ein Array in Java deklariert werden. Sie können dies auf zwei Arten tun. Sie sind gleichwertig, aber die erste entspricht eher dem Java-Stil. Das zweite ist das Erbe der C-Sprache (viele C-Programmierer wechselten zu Java, und der Einfachheit halber wurde eine alternative Methode beibehalten). Die Tabelle zeigt beide Möglichkeiten, ein Array in Java zu deklarieren:
NEIN. Array-Deklaration, Java-Syntax Beispiele Ein Kommentar
1.
dataType[] arrayName;
int[] myArray;

Object[]
arrayOfObjects;
Es empfiehlt sich, ein Array auf diese Weise zu deklarieren, das ist im Java-Stil
2.
dataType arrayName[];
int myArray[];

Object
arrayOfObjects[];
Eine geerbte Methode zum Deklarieren von Arrays aus C/C++, die auch in Java funktioniert
In beiden Fällen ist dataType der Typ der Variablen im Array. In den Beispielen haben wir zwei Arrays deklariert. Einer speichert Ganzzahlen vom Typ int , der andere speichert Objekte vom Typ Object . Wenn ein Array deklariert wird, hat es daher einen Namen und einen Typ (den Typ der Array-Variablen). arrayName ist der Name des Arrays.

Erstellen eines Arrays

Wie erstelle ich ein Array?

Wie jedes andere Objekt können Sie mit dem new- Operator ein Java-Array erstellen, also Speicherplatz dafür reservieren . Das geht so:
new typeOfArray [length];
Dabei ist typeOfArray der Typ des Arrays und length seine Länge (d. h. die Anzahl der Zellen), ausgedrückt in ganzen Zahlen ( int ). Allerdings haben wir hier nur Speicher für das Array zugewiesen, das erstellte Array jedoch keiner zuvor deklarierten Variablen zugeordnet. Normalerweise wird ein Array zuerst deklariert und dann erstellt, zum Beispiel:
int[] myArray; // Array-Deklaration
myArray = new int[10]; // Erstellung, also Zuweisung von Speicher für ein Array mit 10 Elementen vom Typ int
Hier haben wir ein Array von Ganzzahlen mit dem Namen myArray deklariert und dann erklärt, dass es aus 10 Zellen besteht (von denen jede eine Ganzzahl speichert). Es ist jedoch weitaus üblicher, ein Array direkt nach der Deklaration mit dieser Kurzsyntax zu erstellen:
int[] myArray = new int[10]; // Deklaration und Zuweisung von Speicher „in einer Flasche“
Beachten Sie:Nach dem Erstellen eines Arrays mit new werden seine Zellen mit Standardwerten gefüllt. Für numerische Typen (wie in unserem Beispiel) ist dies 0, für boolean - false und für Referenztypen - null . Also nach der Operation
int[] myArray = new int[10];
Wir erhalten ein Array mit zehn Ganzzahlen, und bis sich dies während des Programms ändert, enthält jede Zelle eine 0.

Weitere Informationen zu Arrays finden Sie im Artikel „ Etwas über Arrays

Array-Länge in Java

Wie oben erwähnt, ist die Länge eines Arrays die Anzahl der Elemente, für die das Array ausgelegt ist. Die Länge eines Arrays kann nach seiner Erstellung nicht mehr geändert werden. Beachten Sie:In Java werden Array-Elemente beginnend bei Null nummeriert. Das heißt, wenn wir ein Array mit 10 Elementen haben, dann hat das erste Element des Arrays den Index 0 und das letzte den Index 9. Sie können über die LängenvariableArrays in Java - 3 auf die Länge des Arrays zugreifen . Beispiel:
int[] myArray = new int[10]; // ein Array von Ganzzahlen mit 10 Elementen erstellt und es myArray genannt
System.out.println(myArray.length); // gibt die Länge des Arrays an die Konsole aus, d. h. die Anzahl der Elemente, die wir in das Array einfügen können
Programmausgabe:
10

Initialisieren eines Arrays und Zugriff auf seine Elemente

Wie man in Java ein Array erstellt, ist bereits klar. Nach diesem Vorgang erhalten wir kein leeres Array, sondern ein mit Standardwerten gefülltes Array. Im Fall von int sind diese beispielsweise 0, und wenn wir ein Array mit Daten eines Referenztyps haben, wird standardmäßig null in jede Zelle geschrieben . Wir greifen über seinen Index auf ein Array-Element zu (das heißt, wir schreiben einen Wert hinein oder zeigen ihn auf dem Bildschirm an oder führen eine Operation damit aus). Beim Initialisieren eines Arrays wird es mit bestimmten Daten gefüllt (nicht standardmäßig). Beispiel: Lassen Sie uns ein Array mit 4 Jahreszeiten erstellen und es mit Zeichenfolgenwerten füllen – den Namen dieser Jahreszeiten.
String[] seasons  = new String[4]; /* ein Array deklariert und erstellt. Java hat Speicher für ein Array mit 4 Strings zugewiesen, und jetzt ist jede Zelle null (da der String ein Referenztyp ist)*/

seasons[0] = "Winter"; /* in die erste Zelle, also in die Zelle mit einer Nullzahl, haben wir die Zeichenfolge Winter geschrieben. Hier erhalten wir Zugriff auf das Nullelement des Arrays und schreiben dort einen bestimmten Wert */
seasons[1] = "Spring"; // das gleiche Verfahren mit Zelle Nummer 1 (zweite) durchführen
seasons[2] = "Summer"; // ...Nummer 2
seasons[3] = "Autumn"; // und mit dem letzten, Nummer 3
Jetzt enthalten alle vier Zellen unseres Arrays die Namen der Jahreszeiten. Die Initialisierung kann auch anders erfolgen, indem Initialisierung und Deklaration kombiniert werden:
String[] seasons  = new String[] {"Winter", "Spring", "Summer", "Autumn"};
Außerdem kann der neue Operator weggelassen werden:
String[] seasons  = {"Winter", "Spring", "Summer", "Autumn"};

Wie zeige ich ein Array in Java auf dem Bildschirm an?

Sie können Array-Elemente auf dem Bildschirm (also auf der Konsole) anzeigen, beispielsweise mit einer for- Schleife . Eine andere, kürzere Möglichkeit, ein Array auf dem Bildschirm anzuzeigen, wird im Abschnitt „Nützliche Methoden für die Arbeit mit Arrays“ weiter unten besprochen. Schauen wir uns zunächst ein Beispiel mit der zyklischen Ausgabe eines Arrays an:
String[] seasons  = new String[] {"Winter", "Spring", "Summer", "Autumn"};
for (int i = 0; i < 4; i++) {
System.out.println(seasons[i]);
}
Als Ergebnis gibt das Programm das folgende Ergebnis aus:
Winter Frühling Sommer Herbst

Eindimensionale und mehrdimensionale Java-Arrays

Was wäre, wenn wir nicht ein Array aus Zahlen, ein Array aus Strings oder ein Array aus einigen Objekten, sondern ein Array aus Arrays erstellen möchten? Java ermöglicht Ihnen dies. Das bereits bekannte Array int[] myArray = new int[8] ist ein sogenanntes eindimensionales Array. Und ein Array von Arrays wird als zweidimensional bezeichnet. Es ist wie eine Tabelle, die eine Zeilennummer und eine Spaltennummer hat. Oder, wenn Sie die Anfänge der linearen Algebra gelernt haben, auf einer Matrix. Arrays in Java - 4Warum werden solche Arrays benötigt? Insbesondere zum Programmieren derselben Matrizen und Tabellen sowie von Objekten, die ihnen in ihrer Struktur ähneln. Beispielsweise kann das Spielfeld für Schach als 8x8-Array angegeben werden. Ein mehrdimensionales Array wird wie folgt deklariert und erstellt:
int[][] myTwoDimentionalArray = new int [8][8];
Es gibt genau 64 Elemente in diesem Array: myTwoDimentionalArray[0][0], myTwoDimentionalArray[0][1], myTwoDimentionalArray[1][0]usw. myTwoDimentionalArray[1][1]bis zu myTwoDimentionalArray[7][7]. Wenn wir es also verwenden, um ein Schachbrett darzustellen, dann stellt Zelle A1 dar myTwoDimentionalArray[0][0]und E2 stellt dar myTwoDimentionalArray[4][1]. Wo zwei sind, sind auch drei. In Java können Sie ein Array von Arrays angeben ... ein Array von Arrays von Arrays usw. Zwar werden dreidimensionale und mehrdimensionale Arrays sehr selten verwendet. Mithilfe eines dreidimensionalen Arrays können Sie jedoch beispielsweise einen Zauberwürfel programmieren.

Was gibt es sonst noch zu lesen?

Mehrdimensionale Arrays

Nützliche Methoden zum Arbeiten mit Arrays

Um mit Arrays in Java zu arbeiten, gibt es die Klasse java.util.Arrays (arrays bedeutet auf Englisch „Arrays“). Im Allgemeinen werden die folgenden Operationen am häufigsten mit Arrays durchgeführt: Füllen mit Elementen (Initialisierung), Abrufen eines Elements (nach Nummer), Sortieren und Suchen. Das Suchen und Sortieren von Arrays ist ein separates Thema. Einerseits ist es sehr nützlich, mehrere Such- und Sortieralgorithmen selbst zu üben und zu schreiben. Andererseits sind alle Best Practices bereits geschrieben und in den Java-Bibliotheken enthalten und können legal verwendet werden. Hier sind drei nützliche Methoden dieser Klasse

Sortieren Sie ein Array

Die Methode void sort(int[] myArray, int fromIndex, int toIndex)sortiert ein Array von Ganzzahlen oder sein Unterarray in aufsteigender Reihenfolge.

Durchsuchen eines Arrays nach dem gewünschten Element

int binarySearch(int[] myArray, int fromIndex, int toIndex, int key). Diese Methode sucht nach dem Schlüsselelement in einem bereits sortierten Array myArray oder Subarray, beginnend bei fromIndex und endend bei toIndex . Wenn das Element gefunden wird, gibt die Methode seinen Index zurück, andernfalls - (-fromIndex)-1.

Konvertieren eines Arrays in einen String

Die Methode String toString(int[] myArray)wandelt das Array in einen String um. Die Sache ist, dass Arrays in Java toString() nicht überschreiben . Das bedeutet, dass Sie den Klassennamen und den hexadezimalen Hash-Code des Arrays erhalten, wenn Sie versuchen, das gesamte Array (und nicht Element für Element, wie in „ Drucken eines Arrays auf dem Bildschirm “) direkt auf dem Bildschirm anzuzeigen ( ). System.out.println(myArray)(Dies wird durch Object.toString() definiert ). Wenn Sie ein Anfänger sind, verstehen Sie möglicherweise die Erklärung der Methode nicht toString. Im ersten Schritt ist dies nicht notwendig, aber mit dieser Methode wird die Ausgabe des Arrays vereinfacht. Mit Java ist es einfach, ein Array anzuzeigen, ohne eine Schleife zu verwenden. Mehr dazu im Beispiel unten.

Beispiel für sort, BinarySearch und toString

Erstellen wir ein Array von Ganzzahlen, zeigen es mit toString auf dem Bildschirm an , sortieren es mit der Sortiermethode und suchen darin eine Zahl.
class Main {
    public static void main(String[] args) {
        int[] array = {1, 5, 4, 3, 7}; //Array deklarieren und initialisieren
        System.out.println(array);//versuchen, unser Array ohne die toString-Methode auf dem Bildschirm anzuzeigen – wir erhalten eine Hexadezimalzahl
        System.out.println(Arrays.toString(array));//печатаем массив "правильно"
        Arrays.sort(array, 0, 4); // Sortiere das gesamte Array von Null bis zum vierten Element
        System.out.println(Arrays.toString(array));//drucken Sie das sortierte Array auf dem Bildschirm
        int key = Arrays.binarySearch(array, 5); // ищем key - число 5 в отсортированном массиве.
        //Die Methode „binarySearch“ gibt den Index des sortierten Array-Elements zurück, in dem die erforderliche Nummer „versteckt“ ist.
        System.out.println(key);//распечатываем индекс искомого числа
System.out.println(Arrays.binarySearch(array, 0));//а теперь попробуем найти число, которого в массиве нет,
        // und das Ergebnis sofort auf dem Bildschirm anzeigen

    }
}
Programmausgabe:
[I@1540e19d [1, 5, 4, 3, 7] [1, 3, 4, 5, 7] 3 -1
Die erste Zeile ist ein Versuch, ein Array ohne toString anzuzeigen , die zweite zeigt ein Array mit toString an, die dritte ist ein sortiertes Array, die vierte ist der Index der gewünschten Zahl 5 in einem sortierten Array (denken Sie daran, dass wir abzählen). Null, also hat das vierte Element des Arrays einen Index 3). In der fünften Zeile sehen wir den Wert -1 . Ein Array hat keinen solchen Index. Der Ausgang signalisiert, dass das gewünschte Element (in diesem Fall 0) nicht im Array vorhanden ist.

Mehr über Array-Klassenmethoden

Die Arrays-Klasse und ihre Verwendung – der Artikel beschreibt einige Methoden der Array-Klasse

Das Wichtigste an Arrays

  • Die Hauptmerkmale eines Arrays: die Art der darin platzierten Daten, Name und Länge.
    Letzteres wird bei der Initialisierung (Zuweisung von Speicher für das Array) entschieden, die ersten beiden Parameter werden bei der Deklaration des Arrays bestimmt.

  • Die Arraygröße (Anzahl der Zellen) muss in int definiert werden

  • Sie können die Länge eines Arrays nach seiner Erstellung nicht mehr ändern.

  • Auf ein Array-Element kann über seinen Index zugegriffen werden.

  • In Arrays, wie auch anderswo in Java, werden Elemente beginnend bei Null nummeriert.

  • Nach der Array-Erstellung wird es mit Standardwerten gefüllt.

  • Arrays sind in Java anders aufgebaut als in C++. Sie sind fast dasselbe wie Zeiger auf dynamische Arrays.

Nützliche Materialien zu Arrays

Möchten Sie mehr über Arrays erfahren? Bitte werfen Sie einen Blick auf die folgenden Artikel. Zu diesem Thema gibt es viele interessante und nützliche Informationen.
  1. Etwas über Arrays – Guter ausführlicher Artikel über Arrays

  2. Die Arrays-Klasse und ihre Verwendung – der Artikel beschreibt einige Methoden der Array- Klasse

  3. Mehrdimensionale Arrays – ein ausführlicher Artikel über mehrdimensionale Arrays mit Beispielen.

  4. Geben Sie ein Array der Länge Null zurück, nicht null – Joshua Bloch, Autor von Effective Programming, spricht darüber, wie Sie leere Arrays besser zurückgeben können

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION