web-dev-qa-db-fra.com

Comment initialiser un tableau en Java?

J'initialise un tableau de données 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?

398
chatty
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 assignez un tableau à data[10] qui ne peut contenir qu'un élément.

Si vous voulez initialiser un tableau, essayez d'utiliser 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};

Remarquez la différence entre les deux déclarations. Lorsque vous affectez un nouveau tableau à une variable déclarée, vous devez utiliser new.

Même si vous corrigez la syntaxe, accéder à data[10] est toujours incorrect (vous pouvez uniquement accéder à data[0] à data[9] car l'index des tableaux de Java est basé sur 0). Accéder à data[10] lancera une ArrayIndexOutOfBoundsException .

590
Prasoon Saurav

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

34
Dean Povey

Lorsque vous créez un tableau de taille 10, il alloue 10 emplacements mais de 0 à 9. Cette boucle for peut vous aider à mieux voir cela.

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

Tu peux faire:

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

Syntaxe

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

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

Exemple :

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

Plutôt que d'apprendre des sites Web non officiels, apprenez des sites Web d'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 ça. En plus de ce que d’autres ont suggéré, vous pouvez faire:

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

Si vous souhaitez initialiser un tableau dans un constructeur, vous ne pouvez pas utiliser ces initialiseurs de tableaux comme.

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

Il suffit de changer pour

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} Décrivez simplement la propriété/le champ avec int[] data; et initialisez-le comme ci-dessus. La version corrigée de votre code ressemblerait à ceci:

public class Array {

    int[] data;

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

}

Comme vous le voyez, le support est vide. Il n'est pas nécessaire d'indiquer la taille entre les crochets, car l'initialisation et sa taille sont spécifiées par le nombre d'éléments entre les accolades.

2
Sedat Kilinc

vous essayez de définir le 10ème élément du tableau sur le tableau essayer

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

FTFY

1
schubySteve

déclaration de variables de tablea

Pour utiliser un tableau dans un programme, vous devez déclarer une variable afin de référencer le tableau, et vous devez spécifier le type de tableau que la variable peut référencer. Voici la syntaxe pour déclarer une variable de tableau -

Syntaxe

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

Remarque - Le style dataType [] arrayRefVar est préféré. Le style dataType arrayRefVar [] provient du langage C/C++ et a été adopté dans Java pour prendre en charge les programmeurs C/C++.

Exemple Les extraits de code suivants sont des exemples de cette syntaxe -

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

Création de tableaux

Vous pouvez créer un tableau en utilisant l'opérateur new avec la syntaxe suivante:

Syntaxe

arrayRefVar = new dataType[arraySize];

La déclaration ci-dessus fait deux choses -

  1. Il crée un tableau en utilisant new dataType [arraySize].

  2. Il affecte la référence du tableau nouvellement créé à la variable arrayRefVar.

La déclaration d'une variable de tableau, la création d'un tableau et l'affectation de la référence du tableau à la variable peuvent être combinés en une seule instruction, comme indiqué ci-dessous -

dataType[] arrayRefVar = new dataType[arraySize];

Sinon, vous pouvez créer des tableaux comme suit -

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

Les éléments du tableau sont accessibles via l'index. Les indices de tableau sont basés sur 0; c'est-à-dire qu'ils commencent de 0 à arrayRefVar.length-1.

Exemple

L'instruction suivante déclare une variable de tableau, myList, crée un tableau de 10 éléments de type double et attribue sa référence à myList -

double[] myList = new double[10];

Le tableau à deux dimensions peut être initialisé de la même manière:

Exemple - syntaxe

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

Peut-être que ça va marcher:

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
Sajjad Behravesh