Ich initialisiere ein Array wie folgt:
public class Array {
int data[] = new int[10];
/** Creates a new instance of Array */
public Array() {
data[10] = {10,20,30,40,50,60,71,80,90,91};
}
}
NetBeans weist auf einen Fehler in dieser Zeile hin:
data[10] = {10,20,30,40,50,60,71,80,90,91};
Wie kann ich das Problem lösen?
java
arrays
initialization
gesprächig
quelle
quelle
Antworten:
Das obige ist nicht korrekt (Syntaxfehler). Dies bedeutet, dass Sie ein Array zuweisen
data[10]
das nur ein Element enthalten kann.Wenn Sie ein Array initialisieren möchten, verwenden Sie den Array Initializer :
Beachten Sie den Unterschied zwischen den beiden Erklärungen. Beim Zuweisen eines neuen Arrays zu einer deklarierten Variablen
new
muss verwendet werden.Selbst wenn Sie die Syntax korrigieren, ist der Zugriff
data[10]
immer noch falsch (Sie können nur darauf zugreifendata[0]
,data[9]
weil der Index der Arrays in Java auf 0 basiert). Beim Zugriffdata[10]
wird eine ArrayIndexOutOfBoundsException ausgelöst .quelle
public static void product(int[] array){ int[] productArray = new int[array.length];
und alle Werte aufproductArray
Null setzen möchte , was soll ich schreiben? (Ich denke, ich sollte eine Schleife schreiben und alle Werte auf Null setzen.Versuchen
data = new int[] {10,20,30,40,50,60,71,80,90,91 };
quelle
Wenn Sie ein Array der Größe 10 erstellen, werden 10 Slots zugewiesen, jedoch von 0 bis 9. Diese for-Schleife kann Ihnen dabei helfen, dies etwas besser zu erkennen.
quelle
Du kannst tun:
quelle
Syntax
Beispiel:
quelle
Anstatt nicht offizielle Websites zu lernen, lernen Sie von der Oracle-Website
Link folgt: Klicken Sie hier
* Sie finden Initialisierung sowie Deklaration mit vollständiger Beschreibung *
Eingabe : 10 // Arraygröße 10 20 30 40 50 60 71 80 90 91
Daten anzeigen:
Ausgabe: 10 20 30 40 50 60 71 80 90 91
quelle
Sie können ein solches Array nicht initialisieren. Zusätzlich zu den Vorschlägen anderer können Sie Folgendes tun:
quelle
Wenn Sie ein Array in einem Konstruktor initialisieren möchten, können Sie diese Array-Initialisierer nicht wie verwenden.
Ändern Sie es einfach in
Sie müssen die Größe nicht mit angeben. Deklarieren Sie
data[10] = new int[] { 10,...,91}
einfach die Eigenschaft / das Feld mitint[] data;
und initialisieren Sie sie wie oben. Die korrigierte Version Ihres Codes würde wie folgt aussehen:Wie Sie sehen, sind die Klammern leer. Die Größe zwischen den Klammern muss nicht angegeben werden, da die Initialisierung und ihre Größe durch die Anzahl der Elemente zwischen den geschweiften Klammern angegeben werden.
quelle
Sie versuchen, das 10. Element des Arrays auf den Array-Versuch zu setzen
FTFY
quelle
Vielleicht funktioniert das:
quelle