que - ¿Cómo inicializar una matriz en Java?
que es un array en programacion (10)
Cuando creas una matriz de tamaño 10, asignó 10 espacios pero de 0 a 9. Este bucle for podría ayudarte a verlo un poco mejor.
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;
}
}
}
Estoy inicializando una matriz de datos 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};
}
}
NetBeans señala un error en la línea
data[10] = {10,20,30,40,50,60,71,80,90,91};
¿Cómo puedo solucionar el problema?
No puedes inicializar una matriz como esa. Además de lo que otros han sugerido, puedes hacer:
data[0] = 10;
data[1] = 20;
...
data[9] = 91;
Sintaxis
Datatype[] variable = new Datatype[] { value1,value2.... }
Datatype variable[] = new Datatype[] { value1,value2.... }
Ejemplo:
int [] points = new int[]{ 1,2,3,4 };
Tal vez esto 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};
}
}
Try data = new int[] {10,20,30,40,50,60,71,80,90,91 };
Tu puedes hacer:
int[] data = {10,20,30,40,50,60,71,80,90,91};
está intentando establecer el décimo elemento de la matriz en la matriz intente
data = new int[] {10,20,30,40,50,60,71,80,90,91};
FTFY
Si desea inicializar una matriz en un constructor, no puede usar el inicializador de matriz como.
data= {10,20,30,40,50,60,71,80,90,91};
Solo cambia a
data = new int[] {10,20,30,40,50,60,71,80,90,91};
No tiene que especificar el tamaño con data[10] = new int[] { 10,...,91}
Solo declare la propiedad / campo con int[] data;
e inicializarlo como arriba. La versión corregida de su código se vería como la siguiente:
public class Array {
int[] data;
public Array() {
data = new int[] {10,20,30,40,50,60,71,80,90,91};
}
}
Como veis el soporte están vacíos. No es necesario indicar el tamaño entre paréntesis, ya que la inicialización y su tamaño se especifican por el recuento de los elementos entre paréntesis.
En lugar de aprender sitios web no oficiales, aprenda del sitio web de Oracle
enlace siguiente: Haga clic aquí
* Puede encontrar la inicialización y la declaración con una descripción 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 // tamaño de la matriz 10 20 30 40 50 60 71 80 90 91
Visualización de datos:
for (int i = 0; i < a.length; i++)
{
System.out.println(a[i] + " ");
}
Salida: 10 20 30 40 50 60 71 80 90 91
data[10] = {10,20,30,40,50,60,71,80,90,91};
Lo anterior no es correcto (error de sintaxis). Significa que está asignando una matriz a los data[10]
que pueden contener solo un elemento.
Si desea inicializar una matriz, intente usar 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};
Note la diferencia entre las dos declaraciones. Cuando se asigna una nueva matriz a una variable declarada, se debe usar la new
.
Incluso si corrige la sintaxis, el acceso a los data[10]
sigue siendo incorrecto (solo puede acceder a los data[0]
a los data[9]
porque el índice de matrices en Java se basa en 0). El acceso a los data[10]
lanzará una ArrayIndexOutOfBoundsException .