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?
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.
Provadata = new int[] {10,20,30,40,50,60,71,80,90,91 };
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;
}
}
}
Sintassi
Datatype[] variable = new Datatype[] { value1,value2.... }
Datatype variable[] = new Datatype[] { value1,value2.... }
Esempio:
int [] points = new int[]{ 1,2,3,4 };
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
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;
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.
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
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};
}
}