Java Arrays meistern: Umfassender Leitfaden für effizientes Datenhandling
Java stellt eine Datenstruktur bereit, das Array, das eine festgelegte sequenzielle Sammlung von Elementen desselben Typs speichert. Ein Array wird verwendet, um eine Datensammlung zu speichern, aber es ist oft nützlicher, ein Array als Sammlung von Variablen desselben Typs zu betrachten.
Anstatt individuelle Variablen wie number0, number1, ..., number99 zu deklarieren, deklarieren Sie eine Array-Variable wie numbers und verwenden numbers[0], numbers[1], ..., numbers[99] für einzelne Variablen.
Dieses Tutorial führt ein, wie man Array-Variablen deklariert, Arrays erstellt und Arrays mit indizierten Variablen verarbeitet.
Array-Variablen deklarieren
Um ein Array in einem Programm zu verwenden, müssen Sie eine Variable deklarieren, die das Array referenziert, und den Typ des Arrays angeben, den die Variable referenzieren kann. Hier ist die Syntax für die Deklaration einer Array-Variable:
Syntax
datentyp[] arrayRefVar; // bevorzugte Weise // oder datentyp arrayRefVar[]; // funktioniert aber nicht bevorzugt
Hinweis – Der Stil datentyp[] arrayRefVar wird bevorzugt. Der Stil datentyp arrayRefVar[] stammt aus C/C++ und wurde in Java übernommen, um C/C++-Programmierern entgegenzukommen.
Beispiel
Folgende Code-Snippets sind Beispiele für diese Syntax:
double[] myList; // bevorzugte Weise // oder double myList[]; // funktioniert aber nicht bevorzugt
Arrays erstellen
Sie können ein Array mit dem new-Operator und folgender Syntax erstellen:
Syntax
arrayRefVar = new datentyp[arrayGröße];
Die obige Anweisung tut zwei Dinge:
- Sie erstellt ein Array mit new datentyp[arrayGröße].
- Sie weist die Referenz des neu erstellten Arrays der Variable arrayRefVar zu.
Deklaration, Erstellung und Zuweisung der Referenz können in einer Anweisung kombiniert werden:
datentyp[] arrayRefVar = new datentyp[arrayGröße];
Alternativ können Sie Arrays wie folgt erstellen:
datentyp[] arrayRefVar = {wert0, wert1, ..., wertk};
Array-Elemente werden über den Index zugegriffen. Array-Indizes sind 0-basiert; sie beginnen bei 0 bis arrayRefVar.length-1.
Beispiel
Folgendes Statement deklariert eine Array-Variable myList, erstellt ein Array von 10 double-Elementen und weist die Referenz myList zu:
double[] myList = new double[10];
Das folgende Bild stellt Array myList dar. Hier hält myList zehn double-Werte und die Indizes sind 0 bis 9.
Arrays verarbeiten
Beim Verarbeiten von Array-Elementen verwenden wir oft entweder for-Schleifen oder foreach-Schleifen, da alle Elemente in einem Array denselben Typ haben und die Array-Größe bekannt ist.
Beispiel
Hier ist ein vollständiges Beispiel, das zeigt, wie man Arrays erstellt, initialisiert und verarbeitet:
Live Demopublic class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Alle Array-Elemente ausgeben
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// Alle Elemente summieren
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// Größtes Element finden
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 produziert folgendes Ergebnis:
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, bekannt als foreach-Schleife oder erweiterte for-Schleife, die es ermöglicht, das komplette Array sequenziell zu durchlaufen, ohne eine Indexvariable zu verwenden.
Beispiel
Der folgende Code zeigt alle Elemente im Array myList:
Live Demopublic class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Alle Array-Elemente ausgeben
for (double element : myList) {
System.out.println(element);
}
}
}
Dies produziert folgendes Ergebnis:
Ausgabe
1.9 2.9 3.4 3.5
Arrays an Methoden übergeben
Genau wie Sie primitive Typwerte an Methoden übergeben können, können Sie auch Arrays an Methoden übergeben. Zum Beispiel zeigt die folgende Methode die Elemente in einem int-Array:
Beispiel
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
Sie können es durch Übergeben eines Arrays aufrufen. Zum Beispiel ruft die folgende Anweisung printArray auf, um 3, 1, 2, 6, 4 und 2 anzuzeigen:
Beispiel
printArray(new int[]{3, 1, 2, 6, 4, 2});
Array von einer Methode zurückgeben
Eine Methode kann auch ein Array zurückgeben. Zum Beispiel 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 Arrays-Klasse
Die Klasse java.util.Arrays enthält verschiedene statische Methoden zum Sortieren und Suchen in Arrays, Vergleichen von Arrays und Füllen von Array-Elementen. Diese Methoden sind für alle primitiven Typen überladen.
| Nr. | Methode & Beschreibung |
|---|---|
| 1 | public static int binarySearch(Object[] a, Object key) Sucht im angegebenen Array von Objekten (Byte, Int, Double, etc.) nach dem angegebenen Wert mit binärem Suchalgorithmus. Das Array muss vorher sortiert sein. Gibt Index des Suchschlüssels zurück, wenn enthalten; sonst (–(Einfügepunkt + 1)). |
| 2 | public static boolean equals(long[] a, long[] a2) Gibt true zurück, wenn die beiden angegebenen long-Arrays gleich sind. Zwei Arrays sind gleich, wenn sie dieselbe Anzahl Elemente haben und alle entsprechenden Paare gleich sind. Für alle anderen primitiven Typen (Byte, short, Int, etc.) verfügbar. |
| 3 | public static void fill(int[] a, int val) Weist den angegebenen int-Wert jedem Element des angegebenen int-Arrays zu. Für alle anderen primitiven Typen verfügbar. |
| 4 | public static void sort(Object[] a) Sortiert das angegebene Array von Objekten in aufsteigender Reihenfolge gemäß der natürlichen Ordnung seiner Elemente. Für alle anderen primitiven Typen (Byte, short, Int, etc.) verfügbar. |
Java
- C# Arrays meistern: Deklaration, Initialisierung und Operationen
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java Array-Kopiertechniken: Umfassender Leitfaden
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
- Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
- C++ Arrays verstehen: Deklaration, Initialisierung und Pointer‑Techniken
- C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
- Java Arrays Tutorial: Deklaration, Erstellung und Initialisierung – Beispielcode
- Array von Objekten in Java erstellen: Schritt-für-Schritt-Anleitung