Como inicializar um array em Java?

Eu estou inicializando um array de dados como este:

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

O NetBeans aponta um erro na linha

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

Como posso resolver o problema?

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

O acima não está correto (erro de syntax). Isso significa que você está atribuindo um array aos data[10] que podem conter apenas um elemento.

Se você quiser inicializar uma matriz, tente usar o 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}; 

Observe a diferença entre as duas declarações. Ao atribuir um novo array a uma variável declarada, new deve ser usado.

Mesmo se você corrigir a syntax, acessar data[10] ainda está incorreto (Você só pode acessar data[0] para data[9] porque o índice de matrizes em Java é baseado em 0). Acessar data[10] lançará um ArrayIndexOutOfBoundsException .

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

Quando você cria uma matriz de tamanho 10, ela aloca 10 slots, mas de 0 a 9. Esse loop pode ajudá-lo a ver isso um pouco melhor.

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

Você pode fazer:

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

Sintaxe

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

Exemplo:

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

Em vez de aprender sites não oficiais, aprenda no site da oracle

link segue: Clique aqui

* Você pode encontrar Inicialização, bem como declaração com descrição 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 } 

Entrada : 10 // tamanho do array 10 20 30 40 50 60 71 80 90 91

Exibindo dados:

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

Saída: 10 20 30 40 50 60 71 80 90 91

Você não pode inicializar uma matriz como essa. Além do que outros sugeriram, você pode fazer:

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

Se você quiser inicializar uma matriz em um construtor, você não pode usar esses inicializadores de matriz como.

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

Apenas mude para

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

Você não precisa especificar o tamanho com data[10] = new int[] { 10,...,91} Apenas declare a propriedade / campo com int[] data; e inicializá-lo como acima. A versão corrigida do seu código seria semelhante ao seguinte:

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

Como você vê, o suporte está vazio. Não há necessidade de informar o tamanho entre os colchetes, porque a boot e seu tamanho são especificados pela contagem dos elementos entre as chaves.

você está tentando definir o 10º elemento da matriz para a tentativa de matriz

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

FTFY

Talvez isso funcione:

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