Comment initialiser un tableau en Java?
J'initialise une donnée de tableau comme ceci:
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 pointe une erreur sur la ligne
data[10] = {10,20,30,40,50,60,71,80,90,91};
Comment puis-je résoudre le problème?
10 answers
data[10] = {10,20,30,40,50,60,71,80,90,91};
Ce qui précède n'est pas correct (erreur de syntaxe). Cela signifie que vous attribuez un tableau de data[10]
qui ne peut contenir qu'un élément.
Si vous voulez initialiser un tableau, essayez d'utiliser Initialiseur de Tableau:
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};
Notez la différence entre les deux déclarations. Lors de l'affectation d'un nouveau tableau à une variable déclarée, new
doit être utilisé.
Même si vous corrigez la syntaxe, l'accès à data[10]
est toujours incorrect (Vous ne pouvez accéder à data[0]
qu'à data[9]
car l'index des tableaux en Java est basé sur 0). L'accès à data[10]
lancera une ArrayIndexOutOfBoundsException.
Essayez data = new int[] {10,20,30,40,50,60,71,80,90,91 };
Lorsque vous créez un tableau de taille 10, il a alloué 10 emplacements mais de 0 à 9. Ceci pour la boucle pourrait vous aider à voir cela un peu mieux.
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;
}
}
}
Syntaxe
Datatype[] variable = new Datatype[] { value1,value2.... }
Datatype variable[] = new Datatype[] { value1,value2.... }
Exemple :
int [] points = new int[]{ 1,2,3,4 };
Plutôt que d'apprendre les sites Web non officiels apprenez du site Web oracle
Le lien suit: Cliquez ici
*Vous pouvez trouver l'initialisation ainsi que la déclaration avec une description complète *
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
}
Entrée : 10 / / taille du tableau 10 20 30 40 50 60 71 80 90 91
Affichage des données:
for (int i = 0; i < a.length; i++)
{
System.out.println(a[i] + " ");
}
Sortie: 10 20 30 40 50 60 71 80 90 91
Vous ne pouvez pas initialiser un tableau comme celui-ci. En plus de ce que d'autres ont suggéré, vous pouvez faire:
data[0] = 10;
data[1] = 20;
...
data[9] = 91;
Si vous souhaitez initialiser un tableau dans un constructeur, vous ne pouvez pas utiliser ces initialiseurs de tableau comme.
data= {10,20,30,40,50,60,71,80,90,91};
Il suffit de le changer en
data = new int[] {10,20,30,40,50,60,71,80,90,91};
Vous n'avez pas besoin de spécifier la taille avec data[10] = new int[] { 10,...,91}
Il suffit de déclarer la propriété / champ avec int[] data;
et de l'initialiser comme ci-dessus.
La version corrigée de votre code ressemblerait à ce qui suit:
public class Array {
int[] data;
public Array() {
data = new int[] {10,20,30,40,50,60,71,80,90,91};
}
}
Comme vous le voyez, les parenthèses sont vides. Il n'est pas nécessaire de dire la taille entre les crochets, car le initialisation et sa taille sont spécifiés par le nombre d'éléments entre les accolades.
Vous essayez de définir le 10ème élément du tableau sur le tableau try
data = new int[] {10,20,30,40,50,60,71,80,90,91};
FTFY
Peut-être que cela fonctionnera:
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};
}
}