Hoe initialiseer ik een array in Java?

Ik initialiseer een array als volgt:

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 wijst op een fout op deze regel:

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

Hoe kan ik het probleem oplossen?


Antwoord 1, autoriteit 100%

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

Het bovenstaande is niet correct (syntaxisfout). Het betekent dat je een array toewijst aan data[10]die slechts een element kan bevatten.

Als je een array wilt initialiseren, probeer dan Array-initialisatiefunctie:

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};

Let op het verschil tussen de twee verklaringen. Bij het toewijzen van een nieuwe array aan een gedeclareerde variabele, moet newworden gebruikt.

Zelfs als je de syntaxis corrigeert, is toegang tot data[10]nog steeds onjuist (je hebt alleen toegang tot data[0]tot data[9]omdat de index van arrays in Java op 0 is gebaseerd). Toegang tot data[10]levert een ArrayIndexOutOfBoundsException.


Antwoord 2, autoriteit 6%

Probeer

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

Antwoord 3, autoriteit 4%

Wanneer u een array van grootte 10 maakt, heeft deze 10 slots toegewezen, maar van 0 tot 9.
Deze for-loop kan je misschien helpen dat een beetje beter te zien.

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;
        }
    }
}

Antwoord 4, autoriteit 2%

U kunt het volgende doen:

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

Antwoord 5, autoriteit 2%

Syntaxis

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

Voorbeeld:

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

Antwoord 6

In plaats van te leren van niet-officiële websites, leer van de Oracle-website

link volgt:Klik hier

*U vindt zowel initialisatie als verklaring met volledige beschrijving *

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
}

Invoer:
10//matrixgrootte:
10
20
30
40
50
60
71
80
90
91

Gegevens weergeven:

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

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


Antwoord 7

Je kunt zo’n array niet initialiseren. Naast wat anderen hebben voorgesteld, kunt u het volgende doen:

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

Antwoord 8

Als u een array in een constructor wilt initialiseren,
je kunt die array-initialisatie niet gebruiken zoals.

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

Verander het gewoon in

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

U hoeft de grootte niet op te geven met data[10] = new int[] { 10,...,91}
Declareer gewoon de eigenschap / het veld met int[] data;en initialiseer het zoals hierboven.
De gecorrigeerde versie van uw code ziet er als volgt uit:

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

Zoals je ziet zijn de haakjes leeg. Het is niet nodig om de grootte tussen de haakjes te vermelden, omdat de initialisatie en de grootte worden bepaald door het aantal elementen tussen de accolades.


Antwoord 9

u probeert het 10e element van de array in te stellen op de array, probeer

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

FTFY


Antwoord 10

Misschien werkt dit:

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};
    }
}

Other episodes