So initialisieren Sie ein Array in Java

So initialisieren Sie ein Array in Java
Ein Array in Java ist eine Datenstruktur, die aufeinanderfolgende Elemente desselben Typs hat. Die Elemente sind indiziert, beginnend von Null. In Java ist ein Array ein Objekt, das aus der Objektklasse erhalten wurde. Es gibt drei Möglichkeiten, ein Array zu erstellen: Ein Array kann ohne die definierte Länge deklariert (erstellt) werden. In diesem Fall muss die Länge des Arrays noch definiert werden. Ein Array kann erstellt werden, wobei die Länge definiert und automatisch mit den Standardwerten des Array -Typs initialisiert und initialisiert wurde. Ein Array kann mit den praktischen Werten erstellt werden, die den Array -Elementen zugewiesen sind. In diesem Fall wird die Länge des Arrays indirekt durch die Anzahl der praktischen Werte definiert.

Dieser Artikel zeigt drei Möglichkeiten zur Initialisierung eines Arrays unter Verwendung des primitiven Typs, des String-Typs und des benutzerdefinierten Typs. Der String-Typ und die benutzerdefinierten Typen sind Referenztypen. Der Artikel beginnt mit der Initialisierung des Arrays mit einem primitiven Typ.

Initialisieren von Array mit primitivem Typ

Der Zeichentyp wird hier verwendet. char bedeutet Charakter. Andere primitive Typen werden auf die gleiche Weise durchgeführt. Der gesamte Code in diesem Abschnitt findet in der Main () -Methode statt. Die Aussage,

char [] arr;

deklariert ein Array ohne Anfangswert und ohne die Anzahl der angegebenen Zeichen. Die Anzahl der Zeichen für das Array ist die Länge des Arrays. Sobald die Länge entschieden wurde, bleibt dies bis zum Ende des Programms so. Eine andere Aussage ist zusammen mit diesem eine weitere Aussage erforderlich, um diesem Array Länge zu geben, wie folgt:

char [] arr;
arr = new char [5];

Jetzt beträgt die Anzahl der Zeichen (Länge) des Arrays 5. Mit der zweiten Aussage fand einige Initialisierung statt. Dies ist jedoch keine praktische Initialisierung. Es ist Initialisierung mit 5 Standardwerten für char. Der Standardwert für char ist der leere Charakter, ich.e. ”, Es hat keinen Platz.

Das nächste Codesegment weist jedem Speicherstellen einen praktischen Wert (Zeichen) zu, der 5 Zeichenvariablen des Arrays:

arr [0] = 'f';
arr [1] = 'g';
arr [2] = 'H';
arr [3] = 'i';
arr [4] = 'j';

Dies ist eine Zuordnung oder ein Ersatz. Es ist keine Initialisierung. Die Initialisierung wurde mit Standardwerten durchgeführt. Die beiden oben genannten Erklärungen können wie folgt in einer Erklärung erfolgen:

char [] arr = new char [5];

Der Name des Arrays ist arr. char ist das reservierte Wort für char, das auf beiden Seiten des Zuordnungsbetreibers erscheint. Neu ist ein weiterer Betreiber. Es erstellt das Objekt mit Standardwerten. Die zweite Quadratklammer in der gesamten Aussage hat die Länge des Arrays. An diesem Punkt muss jedes Element des Arrays noch einen praktischen Wert erhalten. Das ist die zweite Möglichkeit, ein Array zu erklären.

Die dritte Art der Erklärung eines Arrays beinhaltet die Initialisierung mit praktischen Werten. Es ist in zwei Formen wie folgt:

char [] arr = 'f', 'g', 'h', 'i', 'j';

oder

char [] arr = new char [] 'f', 'g', 'h', 'i', 'j';

Die erste Form hat das Array Literal, das als Array Initializer bezeichnet wird. Es ist in Zahnspangen. Jedes Zeichen befindet sich in einem einzigen Zitat. Der Array -Initialisierer bestimmt indirekt die Länge des Arrays (Anzahl der Elemente). Das erste Formular hat den neuen Bediener nicht. Die zweite Form hat den neuen Betreiber. Hier haben die zweiten Quadratklammern jedoch nicht die Länge des Arrays, da die Länge im Array -Initialisierer impliziert ist, das daneben codiert ist.

Initialisieren von Strings initialisieren

Das String -Objekt ist ein sehr gutes Beispiel für den Referenztyp in Java. Es gibt zwei Arten von Typen in Java: primitive und Referenztypen. Die primitiven Typen sind: boolean, byte, char, kurz, int, lang, doppelt, float. Die folgende Erklärung deklariert eine Reihe von Zeichenfolgen ohne definierte Länge und Anfangswert (sei es standardmäßig oder praktisch).

String [] arr;

Eine andere Aussage ist zusammen mit diesem eine weitere Aussage erforderlich, um diesem Array Länge zu geben, wie folgt:

String [] arr;
arr = neuer String [4];

Jetzt beträgt die Anzahl der Zeichenfolgen (Referenzen) des Arrays 4. Mit der zweiten Aussage fand einige Initialisierung statt. Dies ist jedoch keine praktische Initialisierung. Es ist Initialisierung mit 4 Standardwerten für die Zeichenfolge. Der Standardwert für die String ist null, ohne Anführungszeichen. Der folgende Code in der Main () -Methode zeigt Folgendes:

String [] arr;
arr = neuer String [4];
für (int i = 0; i<4; i++)
System.aus.print (arr [i]); System.aus.drucken(");

System.aus.println ();

Die Ausgabe ist:

null null null null

Das folgende Codesegment weist jedem Speicherstellen einen praktischen Wert (String -Referenz) der 4 -String -Variablen des Arrays zu:

arr [0] = "eins";
arr [1] = "zwei";
arr [2] = "drei";
arr [3] = "vier";

Dies ist eine Zuordnung oder ein Ersatz. Es ist keine Initialisierung. Die Initialisierung wurde mit Standardwerten durchgeführt. Die beiden oben genannten Erklärungen können wie folgt in einer Erklärung erfolgen:

String [] arr = new String [4];

Der Name des Arrays ist arr. Eine Zeichenfolge ist ein reserviertes Wort für String, das auf beiden Seiten des Zuordnungsoperators angezeigt wird. Neu ist ein weiterer Betreiber. Es erstellt das Objektarray mit Standardwerten. In der gesamten Erklärung hat die zweite Quadratklammer die Länge des Arrays. An diesem Punkt muss jedes Element des Arrays noch einen praktischen Wert erhalten. Das war der zweite Weg, ein Array zu erklären.

Die dritte Art der Erklärung eines Arrays beinhaltet die Initialisierung mit praktischen Werten. Es ist in zwei Formen wie folgt:

String [] arr = "One", "Two", "Three", "Four";

oder

String [] arr = new String [] "One", "Two", "Three", "Four";

Die erste Form hat das Array Literal, das als Array Initializer bezeichnet wird. Es ist in Zahnspangen. Jedes Zeichen befindet sich in einem einzigen Zitat. Der Array -Initialisierer bestimmt indirekt die Länge des Arrays (Anzahl der Elemente). Das erste Formular hat den neuen Bediener nicht. Die zweite Form hat den neuen Betreiber. Hier hat die zweite Quadratklammer jedoch nicht die Länge des Arrays, da die Länge im Array -Initialisierer impliziert ist.

Hinweis: Um die Zeichenfolge oder das Array in Java zu verwenden, müssen weder die String -Klasse noch die Array -Klasse importiert werden.

Benutzerdefinierte Objekte

Das Folgende ist ein Beispiel für eine benutzerdefinierte Klasse:

Klasse aclass
int rep;
int mthd ()
Return Prop;

ACLASS ist der Name der Klasse, aus der seine Objekte erstellt werden.

In der Funktion main () können die folgenden Codesegmente verwendet werden:

ACLASS OBJ1 = NEU ACLASS ();
OBJ1.Prop = 1;
int ret1 = obj1.mthd ();
System.aus.println (ret1);
ACLASS OBJ2 = NEU ACLASS ();
OBJ2.Prop = 2;
int ret2 = obj2.mthd ();
System.aus.println (ret2);
ACLASS OBJ3 = neuer Aclass ();
OBJ3.Prop = 3;
int ret3 = obj3.mthd ();
System.aus.println (ret3);

Jedes Codesegment erstellt ein Objekt vom Typ, ACLASS. Jedes ist ein benutzerdefiniertes Objekt. Jedes Codesegment weist der Eigenschaft (Feld) jedes Objekts eine Ganzzahl zu. Es gibt drei verschiedene Objekte derselben Klasse. Jedes Codesegment ruft seine Methode für sein Objekt auf. Die Ausgabe für die drei Codesegmente sollte: 1 2 3 sein, wobei jede Zahl in einer separaten Zeile.

Die Erklärung eines Arrays eines benutzerdefinierten Klassentyps erfolgt auf die gleiche Weise wie in den oben genannten Fällen. Zum Beispiel,

ACLASS [] arr = neuer Aclass [3];

deklariert eine Reihe von drei Objekten vom Typ, Aclass. Diese Anweisung hat ein mit dem Standardtyp -Wert initialisiertes Array erstellt. Für jeden Referenztyp, einschließlich des Zeichenstreichertyps, ist der Standardwert null. Dies bedeutet. Der folgende Code in Main () sollte dies beweisen:

ACLASS [] arr = neuer Aclass [3];
für (int i = 0; i<3; i++)
System.aus.print (arr [i]); System.aus.drucken(");

System.aus.println ();

Die Ausgabe ist:

null null null

Die folgende Anweisung initialisiert das Array mit praktischen Objekten des ACLASS -Typs:

Aclass [] arr = obj1, obj2, obj3;
Diese Aussage ist sehr korrekt. Leider druckt das folgende Codesegment Codes anstelle von OBJ1, OBJ2 und OBJ3 aus:
Aclass [] arr = obj1, obj2, obj3;
für (int i = 0; i<3; i++)
System.aus.print (arr [i]); System.aus.drucken(");

System.aus.println ();

Die Ausgabe ist:

ACLASS@6ff3C5B5 ACLASS@3764951D ACLASS@4B1210EE

drei verschiedene Codes. Der Grund dafür ist, dass das Array Objektliterale erwartet, jedoch Objektreferenzen gegeben wurden.

Im obigen Verfahren wurden die Objektnamen OBJ1, OBJ2 und OBJ3 erstellt (instanziiert), bevor sie in das Array geschrieben werden. Um dieses Problem zu umgehen, instanziieren Sie die Objekte als Array -Elemente ohne ihre Namen wie folgt:

ACLASS [] arr = new aclass (), new aclass (), new aclass ();

Verwenden Sie anstatt die Objektnamen OBJ1, OBJ2 OBJ3, um auf die Eigenschaften und Methoden zuzugreifen, die Array -Indizes wie folgt:

arr [0].Prop und arr [0].mthd (); arr [1].Prop und arr [1].mthd (); arr [2].Prop und arr [2].mthd ();

Das Problem löst das Problem. Und so können die oben genannten drei Codesegmente als:

ACLASS [] arr = new aclass (), new aclass (), new aclass ();
arr [0].Prop = 1;
int ret1 = arr [0].mthd ();
System.aus.println (ret1);
arr [1].Prop = 2;
int ret2 = arr [1].mthd ();
System.aus.println (ret2);
arr [2].Prop = 3;
int ret3 = arr [2].mthd ();
System.aus.println (ret3);

Und die erwartete ultimative Ausgabe ist wie zuvor, dh 1 2 3, mit jeder Zahl in ihrer eigenen Zeile.

Abschluss

Es gibt zwei Arten von Typen in Java: primitive Typen und Referenztypen. Ein Array kann ohne Elementwert und Länge deklariert werden. Ein Array kann mit seiner Länge deklariert werden, aber vom Compiler auf seine Standardwerte initialisiert werden. Ein Array kann deklariert und mit den praktischen Werten initialisiert werden. Wenn die Werte Referenzen sind und die Literale nicht als Werte verwendet werden können, sollten die Array -Werte die Instanziationen der Klasse sein.