wake-up-neo.net

Wie initialisiere ich ein Array in Java?

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 zeigt einen Fehler in der Zeile

data[10] = {10,20,30,40,50,60,71,80,90,91};

Wie kann ich das Problem lösen?

398
chatty
data[10] = {10,20,30,40,50,60,71,80,90,91};

Das obige ist nicht korrekt (Syntaxfehler). Dies bedeutet, dass Sie data[10] ein Array zuweisen, das nur ein Element enthalten kann.

Wenn Sie ein Array initialisieren möchten, versuchen Sie es mit Array Initializer :

int[] data = {10,20,30,40,50,60,71,80,90,91};

// or

int[] data;
data = new int[] {10,20,30,40,50,60,71,80,90,91};

Beachten Sie den Unterschied zwischen den beiden Deklarationen. Wenn Sie einer deklarierten Variablen ein neues Array zuweisen, muss new verwendet werden.

Selbst wenn Sie die Syntax korrigieren, ist der Zugriff auf data[10] immer noch falsch (Sie können nur auf data[0] bis data[9] zugreifen, da der Index der Arrays in Java 0-basiert ist). Wenn Sie auf data[10] zugreifen, wird eine ArrayIndexOutOfBoundsException ausgelöst.

590
Prasoon Saurav

Versuchen Sie data = new int[] {10,20,30,40,50,60,71,80,90,91 };

34
Dean Povey

Wenn Sie ein Array der Größe 10 erstellen, werden 10 Slots aber von 0 bis 9 zugewiesen. Diese for-Schleife kann Ihnen dabei helfen, dies ein wenig besser zu sehen.

public class Array {
    int[] data = new int[10]; 
    /** Creates a new instance of an int Array */
    public Array() {
        for(int i = 0; i < data.length; i++) {
            data[i] = i*10;
        }
    }
}
25
Bernie Perez

Du kannst tun:

int[] data = {10,20,30,40,50,60,71,80,90,91};
13
user2066936

Syntax

 Datatype[] variable = new Datatype[] { value1,value2.... }

 Datatype variable[]  = new Datatype[] { value1,value2.... }

Beispiel

int [] points = new int[]{ 1,2,3,4 };
10
Vinayak

Anstatt nicht offizielle Websites zu lernen, lernen Sie von der Oracle-Website

link folgt: hier klicken

* Hier finden Sie die Initialisierung sowie eine Erklärung mit vollständiger Beschreibung *

int n; // size of array here 10
int[] a = new int[n];
for (int i = 0; i < a.length; i++)
{
    a[i] = Integer.parseInt(s.nextLine()); // using Scanner class
}

Eingabe : 10 // Arraygröße 10 20 30 40 50 60 71 80 90 91

Angezeigte Daten:

for (int i = 0; i < a.length; i++) 
{
    System.out.println(a[i] + " ");
}

Ausgabe: 10 20 30 40 50 60 71 80 90 91

Sie können ein solches Array nicht initialisieren. Zusätzlich zu den Vorschlägen anderer können Sie Folgendes tun:

data[0] = 10;
data[1] = 20;
...
data[9] = 91;
3
fastcodejava

Wenn Sie ein Array in einem Konstruktor initialisieren möchten, können Sie diesen Array-Initialisierer nicht wie folgt verwenden.

data= {10,20,30,40,50,60,71,80,90,91};

Ändern Sie es einfach zu

data = new int[] {10,20,30,40,50,60,71,80,90,91};

Sie müssen die Größe nicht mit data[10] = new int[] { 10,...,91} angeben. Deklarieren Sie einfach die Eigenschaft/das Feld mit int[] data; und initialisieren Sie es wie oben. Die korrigierte Version Ihres Codes würde folgendermaßen aussehen:

public class Array {

    int[] data;

    public Array() {
        data = new int[] {10,20,30,40,50,60,71,80,90,91};
    }

}

Wie Sie sehen, sind die Klammern leer. Die Größe zwischen den Klammern muss nicht angegeben werden, da die Initialisierung und die Größe durch die Anzahl der Elemente zwischen den geschweiften Klammern festgelegt werden.

2
Sedat Kilinc

sie versuchen, das 10. Element des Arrays auf den Array-Versuch festzulegen

data = new int[] {10,20,30,40,50,60,71,80,90,91};

FTFY

1
schubySteve

Deklarieren von Array-Variablen

Um ein Array in einem Programm zu verwenden, müssen Sie eine Variable deklarieren, die auf das Array verweist, und Sie müssen den Typ des Arrays angeben, auf das die Variable verweisen kann. Hier ist die Syntax zum Deklarieren einer Array-Variablen:

Syntax

dataType[] arrayRefVar;   // preferred way.
or
dataType arrayRefVar[];  // works but not preferred way.

Hinweis - Der Stil dataType [] arrayRefVar wird bevorzugt. Der Stil dataType arrayRefVar [] stammt aus der Sprache C/C++ und wurde in Java übernommen, um C/C++ - Programmierer zu unterstützen.

Beispiel Die folgenden Codeausschnitte sind Beispiele für diese Syntax -

double[] myList;   // preferred way.
or
double myList[];   // works but not preferred way.

Arrays erstellen

Sie können ein Array erstellen, indem Sie den neuen Operator mit der folgenden Syntax verwenden:

Syntax

arrayRefVar = new dataType[arraySize];

Die obige Aussage macht zwei Dinge -

  1. Es erstellt ein Array mit dem neuen Datentyp [arraySize].

  2. Es weist der Variablen arrayRefVar die Referenz des neu erstellten Arrays zu.

Das Deklarieren einer Arrayvariablen, das Erstellen eines Arrays und das Zuweisen der Referenz des Arrays zu der Variablen können wie folgt in einer Anweisung kombiniert werden:

dataType[] arrayRefVar = new dataType[arraySize];

Alternativ können Sie Arrays wie folgt erstellen:

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

Auf die Array-Elemente wird über den Index zugegriffen. Array-Indizes basieren auf 0; Das heißt, sie beginnen bei 0 bis arrayRefVar.length-1.

Beispiel

Die folgende Anweisung deklariert eine Array-Variable, myList, erstellt ein Array mit 10 Elementen vom Typ double und weist den Verweis auf myList zu.

double[] myList = new double[10];

Das zweidimensionale Array kann auf ähnliche Weise initialisiert werden:

Beispiel - Syntax

dataType[][] arrayRefVar = new dataType[arraySize][arraySize];
Ex- int[][] arr=new int[5][5];
0
Ashish

Vielleicht klappt das ja:

public class Array {

    int data[] = new int[10]; 
    /* Creates a new instance of Array */
    public Array() {
        data= {10,20,30,40,50,60,71,80,90,91};
    }
}
0