¿Qué diferencia hay entre inicializar un array con new <tipo> [<cantidad>], y con {}, es decir, sin poner implicitamente la c...

Cesar Hernández Ramírez

Cesar Hernández Ramírez

Pregunta
student
hace 4 años

¿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?

1 respuestas
    Alben Daniel Bustamante Barrios

    Alben Daniel Bustamante Barrios

    student
    hace 4 años

    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.

Curso de Java SE Orientado a Objetos

Curso de Java SE Orientado a Objetos

Este curso fue actualizado, puedes encontrar el nuevo curso en platzi.com/cursos/java

Curso de Java SE Orientado a Objetos
Curso de Java SE Orientado a Objetos

Curso de Java SE Orientado a Objetos

Este curso fue actualizado, puedes encontrar el nuevo curso en platzi.com/cursos/java