Arrays
Aus Java Tutorial - Java lernen
Java stellt eine Datenstruktur, das Array, zur Verfügung, das eine sequentielle Sammlung von Elementen desselben Typs in fester Größe speichert. Ein Array wird verwendet, um eine Sammlung von Daten zu speichern, aber es ist oft nützlicher, sich ein Array als eine Sammlung von Variablen desselben Typs vorzustellen.
Anstatt einzelne Variablen wie z. B. Zahl0, Zahl1, ... und Zahl99 zu deklarieren, deklarieren Sie eine Array-Variable wie z. B. Zahlen und verwenden Zahlen[0], Zahlen[1] und ..., Zahlen[99] zur Darstellung einzelner Variablen.
Dieses Lernprogramm führt in die Deklaration von Array-Variablen, die Erstellung von Arrays und die Verarbeitung von Arrays mit indizierten Variablen ein.
Inhaltsverzeichnis
Deklarieren von Array-Variablen
Um ein Array in einem Programm zu verwenden, müssen Sie eine Variable deklarieren, um auf das Array zu verweisen, und Sie müssen den Typ des Arrays angeben, auf den die Variable verweisen kann. Hier ist die Syntax für die Deklaration einer Array-Variable:
Syntax
dataType[] arrayRefVar; // empfohlener Weg or dataType arrayRefVar[]; // funktioniert; aber nicht empfohlen
Hinweis - Der Stil dataType[] arrayRefVar wird bevorzugt. Der Stil dataType arrayRefVar[] stammt aus der Sprache C/C++ und wurde in Java übernommen, um C/C++-Programmierern entgegenzukommen.
Beispiel
Die folgenden Code-Schnipsel sind Beispiele für diese Syntax:
double[] myList; // empfohlener Weg or double myList[]; // funktioniert; aber nicht empfohlen
Erstellen von Arrays
Sie können ein Array erstellen, indem Sie den neuen Operator mit der folgenden Syntax verwenden:
Syntax
arrayRefVar = new dataType[arraySize];
Die obige Erklärung bewirkt zwei Dinge:
- Es erstellt ein Array mit dem neuen dataType[arraySize].
- Es weist die Referenz des neu erstellten Arrays der Variablen arrayRefVar zu.
Die Deklaration einer Array-Variablen, die Erstellung eines Arrays und die Zuweisung der Referenz des Arrays an die Variable können in einer Anweisung kombiniert werden, wie unten dargestellt:
dataType[] arrayRefVar = new dataType[arraySize];
Alternativ können Sie Arrays wie folgt erstellen:
dataType[] arrayRefVar = {value0, value1, ..., valuek};
Auf die Array-Elemente wird über den Index zugegriffen. Array-Indizes sind 0-basiert, d.h. sie beginnen bei 0 bis arrayRefVar.length-1.
Beispiel
Folgende Anweisung deklariert eine Array-Variable, myList, erstellt ein Array mit 10 Elementen vom Typ double und weist seine Referenz myList zu:
double[] myList = new double[10];
Das folgende Bild zeigt das Array myList. Hier enthält myList zehn Doppelwerte und die Indizes liegen zwischen 0 und 9.
Quelle: www.tutorialspoint.com
Verarbeitung von Arrays
Bei der Verarbeitung von Arrayelementen verwenden wir oft entweder die for-Schleife oder die foreach-Schleife, da alle Elemente in einem Array vom gleichen Typ sind und die Größe des Arrays bekannt ist.
Beispiel
Hier ist ein vollständiges Beispiel, das zeigt, wie man Arrays erstellt, initialisiert und verarbeitet:
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Ausgabe aller Array-Elemente for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // Alle Elemente zusammenfassen double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // Finden des größten Elements double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }
Dies wird zu folgendem Ergebnis führen:
Ausgabe
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
Die foreach-Schleifen
JDK 1.5 führte eine neue for-Schleife ein, die als foreach-Schleife bekannt ist, oder verbesserte for-Schleife, die es Ihnen ermöglicht, das gesamte Array sequentiell zu durchlaufen, ohne eine Indexvariable zu verwenden.
Beispiel
Der folgende Code zeigt alle Elemente im Array myList:
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Gibt alle Array-Elemente aus for (double element: myList) { System.out.println(element); } } }
Dies wird zu folgendem Ergebnis führen:
Ausgabe
1.9 2.9 3.4 3.5
Übergeben von Arrays an Methoden
Genauso wie Sie primitive Typwerte an Methoden übergeben können, können Sie auch Arrays an Methoden übergeben. Beispielsweise zeigt die folgende Methode die Elemente in einem int-Array an:
Beispiel
public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }
Sie können es aufrufen, indem Sie ein Array übergeben. Beispielsweise ruft die folgende Anweisung die printArray-Methode auf, um 3, 1, 2, 6, 4 und 2 anzuzeigen:
Beispiel
printArray(new int[]{3, 1, 2, 6, 4, 2});
Zurückgeben eines Arrays von einer Methode
Eine Methode kann auch ein Array zurückgeben. Beispielsweise gibt die folgende Methode ein Array zurück, das die Umkehrung eines anderen Arrays ist:
Beispiel
public static int[] reverse(int[] list) { int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result; }
Die Array-Klassen
Die Klasse java.util.Arrays enthält verschiedene statische Methoden zum Sortieren und Durchsuchen von Arrays, zum Vergleichen von Arrays und zum Füllen von Arrayelementen. Diese Methoden sind für alle primitiven Typen überladen.
Nummer | Methode | Beschreibung |
---|---|---|
1 | public static int binarySearch(Object[] a, Object key) | Durchsucht das angegebene Array von Object ( Byte, Int , double usw.) mit Hilfe des binären Suchalgorithmus nach dem angegebenen Wert. Das Array muss vor diesem Aufruf sortiert werden. Es wird der Index des Suchschlüssels zurückgegeben, wenn er in der Liste enthalten ist; andernfalls wird ( - (Einfügemarke + 1)) zurückgegeben. |
2 | public static boolean equals(long[] a, long[] a2) | Gibt true zurück, wenn die beiden angegebenen Arrays vom Typ Long gleich sind. Zwei Arrays gelten als gleich, wenn beide Arrays die gleiche Anzahl von Elementen enthalten und alle entsprechenden Paare von Elementen in den beiden Arrays gleich sind. Gibt true zurück, wenn die beiden Arrays gleich sind. Dieselbe Methode könnte von allen anderen primitiven Datentypen (Byte, Short, Int usw.) verwendet werden. |
3 | public static void fill(int[] a, int val) | Weist den angegebenen Wert int jedem Element des angegebenen Arrays von ints zu. Dieselbe Methode könnte von allen anderen primitiven Datentypen (Byte, Short, Int usw.) verwendet werden. |
4 | public static void sort(Object[] a) | Sortiert das angegebene Array von Objekten in aufsteigender Reihenfolge, entsprechend der natürlichen Anordnung seiner Elemente. Dieselbe Methode könnte von allen anderen primitiven Datentypen ( Byte, Short, Int, etc.) verwendet werden. |