Cesar Hernández Ramírez
Pregunta¿Qué diferencia hay entre inicializar un array con new <tipo> [<cantidad>], y con {}, es decir, sin poner implicitamente la cantidad de datos que tendrá el array?
Alben Daniel Bustamante Barrios
Básicamente que al usar [] sólo indicas el tamaño del array, mientras que con {} das un valor inicial a cada elemento del array.
Te doy un ejemplo con los días de la semana.
String[] diasSemana = new String[7];
Estás indicando que diasSemana es un arreglo de tipo String de 7 elementos, pero no le estás dando un valor inicial, por lo luego tendrías que hacerlo de la siguiente forma:
diasSemana[0] = "Lunes"; diasSemana[1] = "Martes"; //Y así hasta terminar todos los días
Mientras, al usar los {} puedes dar el valor inicial de cada elemento y el tamaño lo define automáticamente.
String[] diasSemana = {"Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"};
De ésta manera de puedes ahorrar líneas de código, pero también tiene desventajas.
Por ejemplo. si quieres declarar un array sin especificar su tamaño ni dar su valor inicial, lo haces de la siguiente forma:
String[] diasSemana;
Pero luego, no puedes implementar los {} porque genera un error de compilación.
//No compila. diasSemana = {"Lunes", "Martes"}; //Ésto sí es válido diasSemana = new String[5];
La ventaja de sólo declarar, es que puedes preguntar al usuario una cantidad específica y usarla dentro del array.
Te pongo un ejemplo.
Scanner in = new Scanner(System.in); String[] materias; System.out.println("¿Cuántas materias quieres cursar?"); int cantidadMaterias = in.nextInt(); materias = new String[cantidadMaterias]; System.out.println("Entendido, quieres cursar " + materias.length + " materias.";
Espero te haya sido útil mi respuesta.
