eins. Über die Eigenschaften von Arrays
1. In Java gibt es Grenzüberprüfung, ob Sie Arrays oder Sammlungen verwenden. Wenn die Operation außerhalb der Grenzen ist, wird eine RunTimeException erhalten.
2. Arrays können nur bestimmte Typen speichern. Arrays können native Datentypen speichern, Sammlungen können jedoch nicht. Sammlungen verarbeiten keine Objekte in bestimmten Typen. Sie verarbeiten alle Objekte nach Objekttyp. Was in der Sammlung gespeichert wird, ist eher die Referenz des Objekts als das Objekt selbst.
3. Die Sammelklasse kann nur Verweise auf Objekte speichern. Arrays können erstellt werden, um native Datentypen direkt zu speichern oder Referenzen auf Objekte zu speichern. In der Sammlung können Sie die Wrapper -Klasse wie Ganzzahl, Doppel usw. verwenden, um native Datentypwerte zu sparen.
Beispielcode:
int a = 10; Integer Integer = New Integer (a); int b = Integer.intValue (); System.out.println (a = b);
4. Das Objektarray und das native Datentyp -Array sind fast gleich; Der einzige Unterschied besteht darin, dass das Objektarray Referenzen speichert und das native Datentyp -Array den Wert des nativen Datentyps enthält.
2. korrekte Verwendung von Arrays
Wenn Sie beispielsweise eine große Datenmenge speichern müssen, müssen Sie beispielsweise 100 Variablen definieren. Offensichtlich macht es nicht viel Sinn, den Code 100 Mal zu wiederholen. Wie löst ich dieses Problem? Die Java -Sprache bietet eine Array -Datenstruktur (Array), bei der es sich um einen Container handelt, der Elemente desselben Datentyps speichern und 100 Nummern in ein Array speichern kann. Arrays werden zu diesem Zeitpunkt eine große Hilfe sein ~
1. Vorteile von Arrays
Gibt es einen Unterschied zwischen dem Speichern von Daten und nicht zwischen dem Speichern von Daten? Der größte Vorteil von Arrays besteht darin, dass sie automatisch alle gespeicherten Elemente nummerieren können. Beachten Sie, dass die Nummer mit 0 beginnt. Diese Daten sind einfach zu bedienen.
Beispielsweise kann die Schülernummer verwendet werden, um den entsprechenden Schüler zu finden.
2. Array -Format
Format 1:
Elementtyp [] Array name = neuer Elementtyp [Anzahl der Elemente oder Arraylänge];
Beispiel:
int [] arr = new int [5]; arr [0] = 1; arr [1] = 2;
Format 2:
Elementtyp [] Array name = neuer Elementtyp [] {Element, Element,…};
int [] arr = new int [] {3,5,1,7}; int [] arr = {3,5,1,7};Hinweis: Wenn Sie ein Array zuweisen, müssen Sie die Anzahl der Elemente angeben, die das Array speichern kann, um die Arraygröße zu bestimmen. Die Größe des Arrays kann nach dem Erstellen des Arrays nicht geändert werden. Sie können das Längenattribut verwenden, um die Größe des Arrays zu erhalten.
3. Deklare Array -Variablen deklarieren
Um ein Array zu verwenden, muss das Array im Programm deklariert werden und der Elementtyp des Arrays muss angegeben werden.
= Linke Hälfte:
Schreiben Sie zuerst die linke Seite, um zu klären, dass der Elementtyp int ist und der Container ein Array verwendet. Wie identifizieren Sie das Array? . Verwenden Sie dann ein spezielles Symbol [] Klammern, um es darzustellen. Um ein Array zu verwenden, müssen Sie dem Array einen Namen geben, damit wir das Array X hier nennen. Folgen Sie dann dem gleichen Zeichen.
Code reflektiert:
int [] x
Hinweis: Int x [] ist auch ein Format zum Erstellen von Arrays. Es wird empfohlen, Arrays int [] x zu deklarieren.
4. Erstellen Sie ein Array
= Rechte Hälfte:
Verwenden eines neuen Keywords namens New. Neu wird verwendet, um eine Containerentität im Speicher zu generieren. Datenspeicher erfordert Platz. Der Raum für die Speicherung vieler Daten wird mit dem neuen Bediener geöffnet. neu int [3]; Diese 3 ist die Anzahl der Elemente. Das Teil auf der rechten Seite definiert ein echtes Array im Speicher, mit dem 3 Elemente gespeichert werden können.
New Int [3] macht zwei Dinge. Verwenden Sie zunächst New INT [3], um ein Array zu erstellen, und weisen Sie dann den Verweis auf die Array -Variable x zu.
int [] x=new int[3];
Welcher Typ ist x?
Jede Variable muss einen eigenen Datentyp haben. Beachten Sie, dass dieses X nicht vom Typ int ist. int repräsentiert die Art des Elements im Container. Dann ist x Array -Typ.
Ein Array ist ein separater Datentyp. Datentypen sind in zwei Hauptschulen unterteilt, die in grundlegende Datentypen und Referenzdatentypen unterteilt sind. Die zweitgrößte Schule ist der Referenzdatentyp. Sie sind jetzt mit einer der drei Arten von referenzierten Daten in Kontakt gekommen. Das heißt, die Array -Typ [] -Krackets repräsentieren das Array.
int[] arr = new int[5]; Was passiert im Speicher?
Wenn ein Programm ausgeführt wird, ist es notwendig, den Speicherplatz in Speicher zu öffnen. Int [] arr = new int [5]; wie sieht dieses Programm im Speicher aus? Dies beinhaltet den Raum, den der Java Virtual Machine bei der Ausführung des Programms eröffnet hat. Wie viel Platz öffnet sich Java? Lerne weiter die Gedächtnisstruktur von Java.
5. Array -Initialisierung
Methode 1: Verwenden Sie den Bediener nicht neu
int [] arr = {1, 2, 3, 4, 5};Methode 2: Verwenden Sie den Bediener neu
int [] arr2 = new int [] {1, 2, 3, 4, 5}; int [] arr3 = new int [3]; arr3 [0] = 1; arr3 [1] = 5; arr3 [2] = 6;Wenn der Operator neu in der Array -Initialisierung nicht verwendet wird. Hinweis: Die folgende Schreibmethode ist falsch.
int [] arr; arr = {1,2,3,4,5};Zu diesem Zeitpunkt müssen Sie die Erklärung, Erstellung und Initialisierung in einer Erklärung einlegen. Das Trennen führt zu Syntaxfehlern.
Sie können also nur wie folgt schreiben:
int [] arr = {1,2,3,4,5};6. Array Traversal
public static void main (string [] args) {int [] x = {1, 2, 3}; for (int y = 0; y <3; y ++) {System.out.println (x [y]); // system.out.println ("x ["+y+"] ="+x [y]); Druckeffekt x [0] = 1;} // Dann ist dies die erste gemeinsame Operation von Arrays. durchqueren}Es gibt ein Attribut im Array, das die Anzahl der Elemente im Array erhalten kann, dh die Länge des Arrays. Der Array -Name.Length
public static void main (string [] args) {int [] x = {1, 2, 3}; for (int y = 0; y <x.Length; y ++) {System.out.println (x [y]); // system.out.println ("x ["+y+"] =" x [y]); Druckeffekt x [0] = 1;} // Dann ist dies die erste gemeinsame Operation von Arrays. durchqueren}7. Häufige Ausnahmen von Arrays
Ein Array -Eckmarker überschreitet die Grenzenausnahme: Hinweis: Der Winkelmarker des Arrays beginnt mit 0.
public static void main (String [] args) {int [] x = {1, 2, 3};Zwei-Null-Zeigerausnahme:
public static void main (String [] args) {int [] x = {1, 2, 3}; x = null;Array:
Wenn Sie Arrays verwenden: Wenn es viele Elemente gibt, wird zuerst eine temporäre Speicherung durchgeführt, um den Betrieb dieser Arrays zu erleichtern, und der verwendete Container ist ein Array.
Merkmale:
Die Arraylänge ist festgelegt.
8. Gemeinsame Operationen von Arrays
1: Fall:
Ein Array nimmt den Maximalwert heraus
/*Definieren Sie eine Funktion, um den Maximalwert zu erhalten:
1. Bestimmen Sie das Ergebnis: Rückgabewerttyp int int
2. Unbekannter Inhalt: Der Maximalwert, dessen Array nicht bestimmt wird, wird das Array nicht bestimmt.
Ideen:
1. Definieren Sie eine Variable und zeichnen Sie die größeren Elemente des Arrays auf.
2. Durch das gesamte Array iterieren und jedes Element des Arrays mit der Variablen vergleichen.
3. Wenn eine Variable auf ein Element stößt, das größer ist als es, lass die Variablen den Wert des Elements aufzeichnen. Wenn die Schleife endet, wird der Maximalwert erzeugt.
*/public static int getmax (int [] arr) {// Definieren Sie die Variable, um einen größeren Wert aufzuzeichnen und in ein beliebiges Element im Array zu initialisieren. int max = arr [0]; für (int x = 1; x <arr.length; x ++) {if (arr [x]> max) max = arr [x];} return max;}Zwei: Direktsortierung
Fall 2: Sortieren Sie Arrays mit der direkten Sortierung:
/*
Wählen Sie Sortier.
Vergleichen Sie die Elemente mit einer Ecke mit anderen Elementen.
Am ersten Ende der inneren Schleife erscheint der größte Wert in der Kopfwinkelposition.
*/public static void selectSort (int [] arr) {für (int x = 0; x <arr.länge-1; x ++) {for (int y = x+1; y <arr.länge; y ++) // Warum ist der Initialisierungswert von y x+1? Denn jedes Mal, wenn Sie vergleichen, wird // mit dem nächsten Element verglichen, das an der X -Ecke markiert ist. {if (arr [x]> arr [y]) {int temp = arr [x]; arr [x] = arr [y]; arr [y] = temp;}}}}Drei: Blasensortierung
/*Sprudelnde Sortierung. Vergleichsmethode: Vergleichen Sie zwei benachbarte Elemente. Wenn die Bedingungen erfüllt sind, wird der Positionsersatz durchgeführt. Prinzip: Die innere Schleife endet einmal, und der größte Wert erscheint an der Heck -Eckposition. */public static void bubblesort (int [] arr) {for (int x = 0; x <arr.länge-1; x ++) {für (int y = 0; y <arr.länge-x-1; y ++) //-x: Lassen Sie die Meta-Abschnittschaft jeder Teilnahme im Vergleich. //-1: Vermeiden Sie die Grenzen der Eckspuren. {if (arr [y]> arr [y+1]) {int temp = arr [y]; arr [y] = arr [y+1]; arr [y+1] = temp;}}}}Vier: Halbfache Suche (Dual-Particle-Methode)
/*Um die Suche Effizienz zu verbessern, können Sie die halbfinische Suchmethode verwenden. Hinweis: Diese Suche gilt nur für bestellte Arrays. Diese Methode ist auch zu einer binären Suchmethode geworden. */public static int HalfSeach (int [] arr, int key) {int min, MID, max; min = 0; max = arr.länge -1; MID = (max + min)/2; while (arr [Mid]! = key) {if (key> arr [Mid]) min = mid + 1; else (arr [mid]) max = MID -1; (max+min)/2;} kehren Sie Mid;} zurück;}Fünf: Array Flip
/*Die Inversion ist tatsächlich der Positionsersatz der Elemente der Kopf- und Schwanz -Eckspuren, und dann werden die Kopf -Eck -Markierungen automatisch erhöht. Die Heck-Eckmarke ist selbst verschoben. Wenn die Marke des Kopfwinkels <Schwanzwinkelmarke ist, kann die Substitutionswirkung durchgeführt werden. */public static void Reversearray (int [] arr) {für (int start = 0, end = arr.Length-1; start <end; start ++, end-) {SWAP (arr, start, end);}} // Positionsverschiebung der Elemente des Arrays durchführen. public static void Swap (int [] arr, int a, int b) {int temp = arr [a]; arr [a] = arr [b]; arr [b] = temp;}11. Zweidimensionales Array
Verwendung von Arrays
Detaillierte Erklärung von Java -Arrays
Traversal: ToString () gibt die Elemente des Arrays als Zeichenfolge zurück
Sortieren: sort () bestellen Sie das Array in aufsteigender Reihenfolge
Suche: BinarySearch () Sucht nach dem angegebenen Element im angegebenen Array gibt den Index des Elements zurück. Wenn keine Rückgabe gefunden wird (-Insert-Punkt-1) Hinweis: Bei Verwendung der Suchfunktion muss das Array zuerst sortiert werden.
Zweidimensionales Array:
Rauchen:
Ich habe kein Geld, um 1 Variable zu kaufen
Ein wenig Geld ist eine Packung eindimensionaler Array 20 Variablen
Sehr reichhaltige 10 Packungen (zweidimensionales Array) 2D-Array
Zweidimensionales Array: Die Speicherung ist im Wesentlichen ein eindimensionales Array.
Array -Definition:
Array-Typ [] [] Array Name = Neuarray-Typ [Anzahl des eindimensionalen Arrays] [Anzahl der Elemente in jedem eindimensionalen Array];
Detaillierte Erklärung von Java -Arrays
Frage: Warum A.Length = 3, a [0] .Length = 4?
Detaillierte Erklärung von Java -Arrays
Initialisierung von Array:
Statische Initialisierung:
int [][] a = new int[][]{ {12,34,45,89},{34,56,78,10},{1,3,6,4} };
Dynamische Initialisierung:
Detaillierte Erklärung von Java -Arrays
Gemeinsame Operationen für zweidimensionale Arrays:
1. Durchqueren Sie ein zweidimensionales Array
2. Fassen Sie zweidimensionale Arrays zusammen
Klasse Demo3 {// eine funktionale Funktion definieren, die ein zweidimensionales Array public static void printarr2 durchquert (int [] [] A) {// 1. J ++) {System.out.print (a [i] [j]+","); }}} // Definieren Sie eine Funktion zur Berechnung der Akkumulationssumme von Elementen in einem zweidimensionalen Array public static long getum (int [] [] a) {// 0. Definieren Sie eine Ergebnisvariable langer Summe = 0L; // 1. Zerlegen Sie das zweidimensionale Array für (int i = 0; i <A.Length; i ++) {// 2. Den eindimensionalen Array abbauen, um Daten für (int j = 0; j <a [i] .Length; j ++) {sum+= a [i] [J]; }} return sum;} // Statistik Die Anzahl der Elemente in einem zweidimensionalen Array public static int getDatacount (int [] [] a) {// 0. Notieren Sie die Anzahl der Elemente int count = 0; // 1. Zerlegen Sie das zweidimensionale Array für (int i = 0; i <A.Length; i ++) {// 2. Den eindimensionalen Array abbauen, um Daten für (int j = 0; j <a [i] .Length; j ++) {count ++; }} return count;} public static void main (string [] args) {int [] [] a = new int [] [] {{23,4,5}, {2}, {4,5,78,56,90}}; printarr2 (a); System.out.println ();Die oben genannten sind alle Themen über Java -Arrays. Wie Sie sehen können, sind Java -Arrays eine sehr leistungsstarke Datenstruktur.