2010-07-01 25 views
45
int[] array1 = {1, 2, 3, 4, 5, 6, ,7, 8}; - working 


array1 = {1, 1, 1, 1, 2, 5, ,7, 8}; - NOT working 

La primera línea está funcionando, pero la segunda línea no está funcionando.Java: ¿cómo inicializar una matriz en Java en una línea?

¿Cómo puedo hacer la inicialización desde la segunda línea en una sola línea de código?

Respuesta

84
array = new int[] {1, 1, 2, 3, 5, 8}; 

Fuente: Oracle JavaDocs - Arrays

+2

Agregue a su respuesta conecte a la documentación: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html – uthark

+2

Es el "nuevo" que es importante. –

+1

@uthark: No veo dónde está esta sintaxis en la página que vinculó. Lo más cerca que se encuentra es la copia de matriz en la parte inferior, pero eso no es exactamente una solución de una sola línea. ¿Puedes ser mas específico? – MikeD

5

La razón por la primera funciona es porque el compilador puede comprobar el número de elementos que se va a asignar a la matriz y, a continuación, asignar la cantidad adecuada de memoria.

EDIT: Me doy cuenta ahora de que estás tratando de actualizar array1 con nuevos datos ... La respuesta de Mike D'lo resuelve.

+1

FWIW si envía la matriz a otra cosa (como un manejador de listas gráficas) y reinicializa la matriz como se indica arriba, el enlace al manejador de listas gráficas se romperá. Me encontré con esto mientras desarrollaba con Android. Entonces, si desea ** actualizar ** la lista, lo mejor que puede hacer es borrarlo y agregar más elementos con sus propias herramientas. Y nunca uses nuevo. :pag –

Cuestiones relacionadas