Como inicializar um array em Java?
estou a inicializar um conjunto 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?
10 answers
data[10] = {10,20,30,40,50,60,71,80,90,91};
O acima não está correcto (erro de sintaxe). Significa que você está atribuindo um array a data[10]
que pode conter apenas um elemento.
Se quiser inicializar uma lista, tente usar o Inicializador da lista :
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};
Note-se a diferença entre as duas declarações. Ao atribuir uma nova matriz a uma variável declarada, new
deve ser usado.
Mesmo que corrija a sintaxe, o acesso a data[10]
continua incorrecto (só pode aceder a data[0]
a data[9]
porque o índice = = ligações externas = = O acesso a data[10]
vai lançar um array por cima de uma excepção de Acesso .
Tenta data = new int[] {10,20,30,40,50,60,71,80,90,91 };
Quando se cria uma matriz de tamanho 10, atribui-se 10 slots, mas de 0 a 9. Isto para loop pode ajudar-te 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;
}
}
}
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 aprender com o site oracle
Link abaixo: 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
}
Input : 10 / / Tamanho da matriz 10 20 30 40 50 60 71 80 90 91
Mostrar os dados:
for (int i = 0; i < a.length; i++)
{
System.out.println(a[i] + " ");
}
Resultado: 10 20 30 40 50 60 71 80 90 91
Você não pode inicializar um array assim. Além do que outros sugeriram, você pode fazer:
data[0] = 10;
data[1] = 20;
...
data[9] = 91;
Se quiser inicializar uma matriz num construtor, não podes usar esses inicializadores de array.
data= {10,20,30,40,50,60,71,80,90,91};
Apenas muda 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}
Basta declarar a propriedade / campo com int[] data;
e inicializá-lo como acima.
A versão corrigida do seu código pareceria com o seguinte:
public class Array {
int[] data;
public Array() {
data = new int[] {10,20,30,40,50,60,71,80,90,91};
}
}
Como vê, o suporte está vazio. Não há necessidade de dizer o tamanho entre os suportes, porque o a inicialização e o seu tamanho são especificados pela contagem dos elementos entre os parêntesis.
Você está tentando definir o décimo elemento do array para o array tente
data = new int[] {10,20,30,40,50,60,71,80,90,91};
FFICY
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};
}
}