Come inizializzare un array in Java?


Sto inizializzando un array di dati come questo:

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 indica un errore sulla riga

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

Come posso risolvere il problema?

Author: ROMANIA_engineer, 2009-12-21

10 answers

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

Quanto sopra non è corretto (errore di sintassi). Significa che stai assegnando un array a data[10] che può contenere solo un elemento.

Se si desidera inizializzare un array, provare a utilizzare 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};

Si noti la differenza tra le due dichiarazioni. Quando si assegna un nuovo array a una variabile dichiarata, è necessario utilizzare new.

Anche se si corregge la sintassi, l'accesso a data[10] non è ancora corretto (è possibile accedere solo a data[0] a data[9] perché l'indice degli array in Java è basato su 0). L'accesso a data[10]genererà una ArrayIndexOutOfBoundsException.

 501
Author: Prasoon Saurav, 2016-01-10 14:47:06

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

 29
Author: Dean Povey, 2014-03-25 10:35:49

Quando si crea un array di dimensioni 10 allocato 10 slot ma da 0 a 9. Questo ciclo for potrebbe aiutarti a vederlo un po ' meglio.

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;
        }
    }
}
 19
Author: Bernie Perez, 2017-10-16 14:37:02

Puoi fare:

int[] data = {10,20,30,40,50,60,71,80,90,91};
 14
Author: , 2014-03-30 19:54:51

Sintassi

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

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

Esempio:

int [] points = new int[]{ 1,2,3,4 };
 10
Author: Vinayak, 2013-11-27 07:19:11

Piuttosto che imparare siti web non ufficiali imparare dal sito oracle

Link segue: Clicca qui

*Puoi trovare l'inizializzazione e la dichiarazione con la descrizione completa *

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
}

Ingresso: 10 / / dimensione matrice 10 20 30 40 50 60 71 80 90 91

Visualizzazione dei dati:

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

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

 6
Author: Shivanandam Sirmarigari, 2018-07-18 16:06:34

Non è possibile inizializzare un array del genere. Oltre a ciò che altri hanno suggerito, puoi fare:

data[0] = 10;
data[1] = 20;
...
data[9] = 91;
 3
Author: fastcodejava, 2009-12-21 04:07:36

Se si desidera inizializzare un array in un costruttore, non puoi usare quegli inizializzatori di array come.

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

Basta cambiarlo in

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

Non è necessario specificare la dimensione con data[10] = new int[] { 10,...,91} Basta dichiarare la proprietà / campo con int[] data; e inizializzarlo come sopra. La versione corretta del codice sarà simile alla seguente:

public class Array {

    int[] data;

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

}

Come vedi le parentesi sono vuote. Non c'è alcun bisogno di dire la dimensione tra le parentesi, perché il l'inizializzazione e la sua dimensione sono specificate dal conteggio degli elementi tra le parentesi graffe.

 2
Author: Sedat Kilinc, 2018-02-21 17:43:35

Si sta tentando di impostare il 10 ° elemento dell'array sull'array try

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

FTFY

 1
Author: schubySteve, 2016-04-01 11:17:25

Forse questo funzionerà:

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
Author: Sajjad Behravesh, 2015-01-18 10:24:07