Java-Arrays

Arrays sind eine der wichtigen Datenstrukturen für jede Programmiersprache. Natürlich haben verschiedene Sprachen unterschiedliche Implementierungen und Handhabungen von Arrays.

In der Java-Sprache bereitgestellte Arrays werden verwendet, um Elemente fester Größe desselben Typs zu speichern.

Sie können eine Array-Variable deklarieren, wie zum Beispiel numbers

Dieses Tutorial führt in die Deklaration, Erstellung und Initialisierung von Java-Arrays ein und stellt den entsprechenden Code bereit.


Array-Variablen deklarieren

Zuerst müssen Sie eine Array-Variable deklarieren, bevor Sie ein Array in einem Programm verwenden können. Das Folgende ist die Syntax zum Deklarieren einer Array-Variable:

dataType[] arrayRefVar; //Bevorzugte MethodeoderdataType arrayRefVar[]; //Gleicher Effekt, aber nicht die bevorzugte Methode

Hinweis:Es wird empfohlen,dataType[] arrayRefVarden Deklarationsstil zum Deklarieren von Array-Variablen zu verwenden. Der Stil dataType arrayRefVar[] stammt aus der Sprache C/C++. Er wird in Java übernommen, damit C/C++-Programmierer die Java-Sprache schnell verstehen können.

Beispiel

Nachfolgend finden Sie Codebeispiele für diese beiden Syntaxen:

double[] myList; //Bevorzugte Methodeoderdouble myList[]; //Gleicher Effekt, aber nicht die bevorzugte Methode

Erstellen eines Arrays

Die Sprache Java verwendet den new-Operator, um Arrays zu erstellen. Die Syntax lautet wie folgt:

arrayRefVar = new dataType[arraySize];

Die obige Syntaxanweisung bewirkt zwei Dinge:

  • Zuerst erstellt sie ein Array mit dataType[arraySize].
  • Zweitens weist sie die Referenz des neu erstellten Arrays der Variablen arrayRefVar zu.

Das Deklarieren einer Array-Variablen und das Erstellen eines Arrays können in einer einzigen Anweisung erfolgen, wie unten gezeigt:

dataType[] arrayRefVar = new dataType[arraySize];

Darüber hinaus können Sie ein Array auch auf die folgende Weise erstellen.

dataType[] arrayRefVar = {value0, value1, ..., valuek};

Auf Array-Elemente wird über den Index zugegriffen. Array-Indizes beginnen bei 0, daher reichen die Indexwerte von 0 bis arrayRefVar.length-1.

Beispiel

Die folgende Anweisung deklariert zuerst eine Array-Variable myList, erstellt dann ein Array mit 10 Elementen vom Typ double und weist dessen Referenz der Variablen myList zu.

Code der Datei TestArray.java:

public class TestArray { public static void main(String[] args) { //Array-Größe int size = 10; //Array definieren double[] myList = new double[size]; myList[0] = 5.6; myList[1] = 4.5; myList[2] = 3.3; myList[3] = 13.2; myList[4] = 4.0; myList[5] = 34.33; myList[6] = 34.0; myList[7] = 45.45; myList[8] = 99.993; myList[9] = 11123; //Berechnen Sie die Summe aller Elemente double total = 0; for (int i = 0; i < size; i++) { total += myList[i]; } System.out.println("Die Summe ist:" + total); } }

Die Ausgabe des obigen Beispiels ist:

总和为: 11367.373

Das folgende Bild zeigt das Array myList. Hier hat das Array myList 10 double-Elemente, und seine Indizes reichen von 0 bis 9.

java数组结构说明


Verarbeitung von Arrays

Der Elementtyp und die Größe eines Arrays sind fest, daher verwenden wir bei der Verarbeitung von Array-Elementen normalerweise eine einfache Schleife oder eine For-Each-Schleife.

Beispiel

Dieses Beispiel zeigt vollständig, wie man Arrays erstellt, initialisiert und manipuliert:

Code der Datei TestArray.java:

public 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] + " "); } //Berechnen Sie die Summe aller Elemente double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Summe ist " + total); //Finden Sie das größte Element double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max ist " + max); } }

Das Kompilierungs- und Ausführungsergebnis des obigen Beispiels ist wie folgt:

1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

For-Each-Schleife

JDK 1.5 führte eine neue Art von Schleife ein, genannt For-Each-Schleife oder erweiterte Schleife, die Arrays ohne Verwendung von Indizes durchlaufen kann.

Das Syntaxformat lautet wie folgt:

for(type element: array)
{
    System.out.println(element);
}

Beispiel

Dieses Beispiel wird verwendet, um alle Elemente im Array myList anzuzeigen:

Code der Datei TestArray.java:

public 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); } } }

Das Kompilierungs- und Ausführungsergebnis des obigen Beispiels ist wie folgt:

1.9
2.9
3.4
3.5

Arrays als Funktionsparameter

Arrays können als Parameter an Methoden übergeben werden.

Zum Beispiel ist das folgende Beispiel eine Methode, die die Elemente eines int-Arrays ausgibt:

public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }

Das folgende Beispiel ruft die Methode printArray auf, um 3, 1, 2, 6, 4 und 2 auszugeben:

printArray(new int[]{3, 1, 2, 6, 4, 2});

Arrays als Rückgabewerte von Funktionen

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; }

Im obigen Beispiel wird das Ergebnis-Array als Rückgabewert der Funktion verwendet.


Mehrdimensionale Arrays

Mehrdimensionale Arrays können als Arrays von Arrays betrachtet werden. Beispielsweise ist ein zweidimensionales Array ein spezielles eindimensionales Array, bei dem jedes Element ein eindimensionales Array ist, zum Beispiel:

String[][] str = new String[3][4];

Dynamische Initialisierung mehrdimensionaler Arrays (am Beispiel eines zweidimensionalen Arrays)

1. Weisen Sie direkt Speicher für jede Dimension zu, das Format ist wie folgt:

type[][] typeName = new type[typeLength1][typeLength2];

type kann ein grundlegender Datentyp oder ein zusammengesetzter Datentyp sein. typeLength1 und typeLength2 müssen positive ganze Zahlen sein. typeLength1 ist die Anzahl der Zeilen und typeLength2 ist die Anzahl der Spalten.

Zum Beispiel:

int[][] a = new int[2][3];

Analyse:

Das zweidimensionale Array a kann als ein Array mit zwei Zeilen und drei Spalten betrachtet werden.

2. Ausgehend von der höchsten Dimension weisen Sie für jede Dimension separat Speicher zu, zum Beispiel:

String[][] s = new String[2][]; s[0] = new String[2]; s[1] = new String[3]; s[0][0] = new String("Good"); s[0][1] = new String("Luck"); s[1][0] = new String("to"); s[1][1] = new String("you"); s[1][2] = new String("!");

Analyse:

s[0]=new String[2]unds[1]=new String[3]Es weist Referenzspeicher für die höchste Dimension zu, das heißt, es begrenzt die maximale Länge der Daten, die die höchste Dimension speichern kann, und weist dann für jedes seiner Array-Elemente separat Speicher zu.s0=new String("Good")und weitere Operationen.

Referenzierung mehrdimensionaler Arrays (am Beispiel eines zweidimensionalen Arrays)

Für jedes Element in einem zweidimensionalen Array ist die ReferenzierungsmethodearrayName[index1][index2], zum Beispiel:

num[1][0];

Arrays-Klasse

Die Klasse java.util.Arrays kann bequem auf Arrays operieren. Alle von ihr bereitgestellten Methoden sind statisch.

Sie verfügt über die folgenden Funktionen:

  • Werte dem Array zuweisen: durch die fill-Methode.
  • Das Array sortieren: durch die sort-Methode, in aufsteigender Reihenfolge.
  • Arrays vergleichen: Verwenden Sie die equals-Methode, um zu vergleichen, ob die Elementwerte in den Arrays gleich sind.
  • Nach Array-Elementen suchen: Die binarySearch-Methode kann eine binäre Suche in einem sortierten Array durchführen.

Ausführliche Anweisungen finden Sie in der folgenden Tabelle:

Nein. Methode und Beschreibung
1 public static int binarySearch(Object[] a, Object key)
Sucht mithilfe des binären Suchalgorithmus nach einem Objekt mit einem gegebenen Wert in einem gegebenen Array (Byte, Int, double usw.). Das Array muss vor dem Aufruf sortiert sein. Wenn der Suchwert im Array enthalten ist, wird der Index des Suchschlüssels zurückgegeben; andernfalls wird (-(Einfügepunkt) - 1).
2 public static boolean equals(long[] a, long[] a2)
Wenn zwei angegebene long-Arraysgleichsind, wird true zurückgegeben. Wenn die beiden Arrays dieselbe Anzahl von Elementen enthalten und alle entsprechenden Elementpaare in den beiden Arrays gleich sind, gelten die beiden Arrays als gleich. Mit anderen Worten: Wenn die beiden Arrays dieselben Elemente in derselben Reihenfolge enthalten, sind die beiden Arrays gleich. Dieselbe Methode gilt für alle anderen grundlegenden Datentypen (Byte, short, Int usw.).
3 public static void fill(int[] a, int val)
Weist jedem Element im angegebenen Bereich des angegebenen int-Arrays den angegebenen int-Wert zu. Dieselbe Methode gilt für alle anderen grundlegenden Datentypen (Byte, short, Int usw.).
4 public static void sort(Object[] a)
Sortiert das angegebene Objekt-Array in aufsteigender Reihenfolge gemäß der natürlichen Reihenfolge seiner Elemente. Dieselbe Methode gilt für alle anderen grundlegenden Datentypen (Byte, short, Int usw.).

Übungen

Java Arrays Quiz

Andere Erweiterungen