Arrays sind eine der wichtigen Datenstrukturen für jede Programmiersprache. Natürlich implementieren und verarbeiten verschiedene Sprachen Arrays unterschiedlich.
In der Java-Sprache bereitgestellte Arrays werden zum Speichern von Elementen mit fester Größe desselben Typs verwendet.
Sie können eine Array-Variable wie Zahlen[100] deklarieren, anstatt direkt 100 unabhängige Variablen Zahl0, Zahl1, ..., Zahl99 zu deklarieren.
Dieses Tutorial führt Sie in die Deklaration, Erstellung und Initialisierung von Java-Arrays ein und stellt Ihnen den entsprechenden Code zur Verfügung.
Array-Variablen müssen zunächst deklariert werden, bevor ein Array in einem Programm verwendet werden kann. Im Folgenden finden Sie die Syntax zum Deklarieren von Array-Variablen:
dataType[]arrayRefVar;//首选的方法或dataTypearrayRefVar[];//效果相同,但不是首选方法
Hinweis: Es wird empfohlen, den Deklarationsstil dataType[] arrayRefVar zum Deklarieren von Array-Variablen zu verwenden. Der dataType arrayRefVar[]-Stil stammt aus der C/C++-Sprache und wird in Java übernommen, um C/C++-Programmierern ein schnelles Verständnis der Java-Sprache zu ermöglichen.
Hier sind Codebeispiele für beide Syntaxen:
double[]myList;//首选的方法或doublemyList[];//效果相同,但不是首选方法
Die Java-Sprache verwendet den neuen Operator zum Erstellen eines Arrays. Die Syntax lautet wie folgt:
arrayRefVar=newdataType[arraySize];
Die obige Syntaxanweisung bewirkt zwei Dinge:
1. Erstellen Sie ein Array mit dataType[arraySize].
2. Weisen Sie der Variablen arrayRefVar die Referenz des neu erstellten Arrays zu.
Die Deklaration von Array-Variablen und die Erstellung des Arrays können in einer Anweisung abgeschlossen werden, wie unten gezeigt:
dataType[]arrayRefVar=newdataType[arraySize];
Darüber hinaus können Sie auch mit der folgenden Methode ein Array erstellen.
dataType[]arrayRefVar={value0,value1,...,valuek};
Auf die Elemente eines Arrays wird über den Index zugegriffen. Die Array-Indizierung beginnt bei 0, daher reichen die Indexwerte von 0 bis arrayRefVar.length-1.
Wenn das Array dann Platz freigibt, können Sie wie folgt vorgehen:
Beispiel: Definieren Sie ein int-Array
public class ArrayDemo { public static void main(String args[]) { int data[] = new int[3]; /*开辟了一个长度为3的数组*/ data[0] = 10; // 第一个元素 data[1] = 20; // 第二个元素 data[2] = 30; // 第三个元素 for(int x = 0; x < data.length; x++) { System.out.println(data[x]); //通过循环控制索引 } } }
Neben der Deklaration und Zuweisung von Speicherplatz verfügt das Array selbst über einen weiteren Zuweisungsmodus.
Beispiel: Verwenden Sie den Schritt-für-Schritt-Modus, um Array-Platz freizugeben
public class ArrayDemo { public static void main(String args[]) { int data[] = null; data = new int[3]; /*开辟了一个长度为3的数组*/ data[0] = 10; // 第一个元素 data[1] = 20; // 第二个元素 data[2] = 30; // 第三个元素 for(int x = 0; x < data.length; x++) { System.out.println(data[x]); //通过循环控制索引 } } }
Denken Sie jedoch daran, dass es sich bei Arrays um Referenzdatentypen handelt. Daher muss vor der Verwendung des Arrays Speicherplatz zugewiesen (instanziiert) werden. Wenn ein Array ohne zugewiesenen Speicherplatz verwendet wird, wird auf jeden Fall eine NullPointerException
Meldung angezeigt:
public class ArrayDemo { public static void main(String args[]) { int data[] = null; System.out.println(data[x]); } }
Dieses Prinzip ist genau das gleiche wie zuvor erklärt.
Während der Entwicklung werden definitiv Arrays verwendet, aber Vorgänge wie die oben genannten sind selten. In der zukünftigen tatsächlichen Entwicklung wird das Array-Konzept häufiger verwendet, und wenn es direkt verwendet wird, handelt es sich in den meisten Fällen nur um eine For-Schleifenausgabe.
Der Elementtyp des Arrays und die Größe des Arrays werden bestimmt. Daher verwenden wir bei der Verarbeitung von Array-Elementen normalerweise eine Basisschleife oder eine foreach-Schleife.
Dieses Beispiel veranschaulicht vollständig, wie Arrays erstellt, initialisiert und bearbeitet werden:
publicclassTestArray{ publicstaticvoidmain(String[]args){ double[]myList={1.9,2.9,3.4,3.5}; //打印所有数组元素for(inti=0;i<myList.length;i++){ System.out.println(myList[i]+""); } //计算所有元素的总和doubletotal=0; for(inti=0;i<myList.length;i++){ total+=myList[i]; } System.out.println("Totalis"+total); //查找最大元素doublemax=myList[0]; for(inti=1;i<myList.length;i++){ if(myList[i]>max)max=myList[i]; } System.out.println("Maxis"+max); } }
Die Kompilierungs- und Ausführungsergebnisse des obigen Beispiels lauten wie folgt:
1.9 2.9 3.4 3.5 Totalis11.7 Maxis3.5
Mit JDK 1.5 wurde ein neuer Schleifentyp eingeführt, der als foreach-Schleife oder erweiterte Schleife bezeichnet wird und ein Array durchläuft, ohne Indizes zu verwenden.
Das Syntaxformat ist wie folgt:
for(type element: array){ System.out.println(element); }
Dieses Beispiel wird verwendet, um alle Elemente im Array myList anzuzeigen:
publicclassTestArray{ publicstaticvoidmain(String[]args){ double[]myList={1.9,2.9,3.4,3.5}; //打印所有数组元素for(doubleelement:myList){ System.out.println(element); } } }
Die Kompilierungs- und Ausführungsergebnisse des obigen Beispiels lauten wie folgt:
1.9 2.9 3.4 3.5
Arrays können als Parameter an Methoden übergeben werden. Das folgende Beispiel ist beispielsweise eine Methode, die die Elemente in einem int-Array druckt.
publicstaticvoidprintArray(int[]array){ for(inti=0;i<array.length;i++){ System.out.print(array[i]+""); } }
Das folgende Beispiel ruft die printArray-Methode auf, um 3, 1, 2, 6, 4 und 2 auszudrucken:
printArray(newint[]{3,1,2,6,4,2});
publicstaticint[]reverse(int[]list){ int[]result=newint[list.length]; for(inti=0,j=result.length-1;i<list.length;i++,j--){ result[j]=list[i]; } returnresult; }
Im obigen Beispiel wird das Ergebnisarray als Rückgabewert der Funktion verwendet.
Die Klasse java.util.Arrays kann Arrays bequem bedienen und alle von ihr bereitgestellten Methoden sind statisch. Hat folgende Funktionen:
Weisen Sie dem Array einen Wert zu: über die Füllmethode.
Sortieren Sie das Array: Verwenden Sie die Sortiermethode in aufsteigender Reihenfolge.
Arrays vergleichen: Verwenden Sie die Methode equal, um zu vergleichen, ob die Elementwerte im Array gleich sind.
Suche nach Array-Elementen: Die Methode „binarySearch“ kann eine binäre Suchoperation für das sortierte Array durchführen.
Spezifische Anweisungen finden Sie in der folgenden Tabelle:
Seriennummer | Methoden und Anweisungen |
---|---|
1 | public static int BinarySearch(Object[] a, Object key) verwendet einen binären Suchalgorithmus, um im angegebenen Array nach einem Objekt mit einem bestimmten Wert (Byte, Int, Double usw.) zu suchen. Das Array muss vor dem Aufruf sortiert werden. Wenn der Suchwert in einem Array enthalten ist, wird der Index des Suchschlüssels zurückgegeben; andernfalls wird (-( Einfügepunkt ) - 1) zurückgegeben. |
2 | public static boolean equal(long[] a, long[] a2) Gibt true zurück, wenn die beiden angegebenen Long-Arrays einander gleich sind . Zwei Arrays gelten als gleich, wenn sie die gleiche Anzahl an Elementen enthalten und alle entsprechenden Elementpaare in beiden Arrays gleich sind. Mit anderen Worten: Zwei Arrays sind gleich, wenn sie dieselben Elemente in derselben Reihenfolge enthalten. Der gleiche Ansatz funktioniert 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 Arrays vom Typ int den angegebenen int-Wert zu. Der gleiche Ansatz funktioniert für alle anderen grundlegenden Datentypen (Byte, Short, Int usw.). |
4 | public static void sort(Object[] a) sortiert das angegebene Objektarray in aufsteigender Reihenfolge entsprechend der natürlichen Reihenfolge seiner Elemente. Der gleiche Ansatz funktioniert für alle anderen grundlegenden Datentypen (Byte, Short, Int usw.). |