Estou inicializando uma matriz como esta:
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 para um erro nesta linha:
data[10] = {10,20,30,40,50,60,71,80,90,91};
Como posso resolver o problema?
java
arrays
initialization
tagarela
fonte
fonte
Respostas:
O acima não está correto (erro de sintaxe). Isso significa que você está atribuindo uma matriz a
data[10]
qual pode conter apenas um elemento.Se você deseja inicializar uma matriz, tente usar o Array Initializer :
Observe a diferença entre as duas declarações. Ao atribuir uma nova matriz a uma variável declarada,
new
deve ser usado.Mesmo se você corrigir a sintaxe, o acesso
data[10]
ainda é incorreta (Você só pode acessardata[0]
adata[9]
causa do índice de matrizes em Java é baseado em 0). O acessodata[10]
lançará uma ArrayIndexOutOfBoundsException .fonte
public static void product(int[] array){ int[] productArray = new int[array.length];
e quiser definir todos os valores deproductArray
zero , o que devo escrever? (Eu acho que eu deveria escrever um loop e definir todos os valores a zero, há alguma maneira melhor de fazer isso?)Tentar
data = new int[] {10,20,30,40,50,60,71,80,90,91 };
fonte
Quando você cria uma matriz de tamanho 10, ela aloca 10 slots, mas de 0 a 9. Esse loop for pode ajudá-lo a ver um pouco melhor.
fonte
Você pode fazer:
fonte
Sintaxe
Exemplo:
fonte
Em vez de aprender sites não oficiais, aprenda no site da oracle
link a seguir: Clique aqui
* Você pode encontrar a inicialização e a declaração com a descrição completa *
Entrada : 10 // tamanho da matriz 10 20 30 40 50 60 71 80 90 91
Exibindo dados:
Saída: 10 20 30 40 50 60 71 80 90 91
fonte
Você não pode inicializar uma matriz como essa. Além do que os outros sugeriram, você pode fazer:
fonte
Se você deseja inicializar uma matriz em um construtor, não pode usar esses inicializadores como.
Apenas mude para
Você não precisa especificar o tamanho com
data[10] = new int[] { 10,...,91}
Basta declarar a propriedade / campoint[] data;
e inicializá-lo como acima. A versão corrigida do seu código teria a seguinte aparência:Como você vê, o suporte está vazio. Não há necessidade de informar o tamanho entre os colchetes, porque a inicialização e seu tamanho são especificados pela contagem dos elementos entre os colchetes.
fonte
você está tentando definir o décimo elemento do array para o array try
FTFY
fonte
Talvez isso funcione:
fonte