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.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. |
|
|
Es empfiehlt sich, ein Array auf diese Weise zu deklarieren, das ist im Java-Stil |
2. |
|
|
Eine geerbte Methode zum Deklarieren von Arrays aus C/C++, die auch in Java funktioniert |
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ängenvariable 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:
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:
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. Warum 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? |
---|
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.
Artikel zum Suchen und Sortieren: Sortieralgorithmen in Theorie und Praxis Implementierung der Blasensortierung in Java Sortieren und Suchen im CS50-Kurs: Sortieralgorithmen. Blasensortierung |
Sortieren Sie ein Array
Die Methodevoid 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 MethodeString 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:
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.-
Etwas über Arrays – Guter ausführlicher Artikel über Arrays
-
Die Arrays-Klasse und ihre Verwendung – der Artikel beschreibt einige Methoden der Array- Klasse
-
Mehrdimensionale Arrays – ein ausführlicher Artikel über mehrdimensionale Arrays mit Beispielen.
-
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
GO TO FULL VERSION