¿Cómo inicializar una matriz en Java?

Estoy inicializando una matriz de datos 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}; } } 

NetBeans señala un error en la línea

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

¿Cómo puedo resolver el problema?

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

Lo anterior no es correcto (error de syntax). Significa que está asignando una matriz a los data[10] que puede contener solo un elemento.

Si desea inicializar una matriz, intente utilizar 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 la diferencia entre las dos declaraciones. Cuando se asigna una nueva matriz a una variable declarada, se debe usar new .

Incluso si corrige la syntax, acceder a los data[10] sigue siendo incorrecto (solo puede acceder a los data[0] a data[9] porque el índice de matrices en Java está basado en 0). El acceso a los data[10] arrojará una ArrayIndexOutOfBoundsException .

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

Cuando creas una matriz de tamaño 10 asigna 10 ranuras, pero de 0 a 9. Este bucle for puede ayudarte a ver 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; } } } 

Tu puedes hacer:

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

Sintaxis

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

Ejemplo:

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

En lugar de aprender sitios web no oficiales, aprenda del sitio web de Oracle

el enlace sigue: haga clic aquí

* Puede encontrar Inicialización y statement con 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

No puede inicializar una matriz como esa. Además de lo que otros han sugerido, puedes hacer:

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

Si desea inicializar una matriz en un constructor, no puede usar esos inicializadores de matriz como.

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

Solo cámbialo a

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

No tiene que especificar el tamaño con los data[10] = new int[] { 10,...,91} Simplemente declare la propiedad / campo con int[] data; e inicializarlo como arriba. La versión corregida de su código sería similar a la siguiente:

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

Como ve, el soporte está vacío. No es necesario indicar el tamaño entre los corchetes, ya que la inicialización y su tamaño se especifican mediante el recuento de los elementos entre los corchetes.

está tratando de establecer el décimo elemento de la matriz para probar la matriz

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

FTFY

Quizás 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}; } }