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?

Author: ROMANIA_engineer, 2009-12-21

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.

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

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

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

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

Vous pouvez faire:

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

Syntaxe

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

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

Exemple :

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

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

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

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;
 3
Author: fastcodejava, 2009-12-21 04:07:36

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.

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

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

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

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