¿La longitud de una matriz primitiva refleja el tamaño asignado o el número de elementos asignados?

3 minutos de lectura

Avatar de usuario de Kiran Bhat
kiran bhat

Declaré una matriz como se muestra a continuación:

int[] arr = new int[10];

Luego asigné los siguientes valores a la matriz:

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;

Luego declaré e inicialicé una variable entera:

int arrayLength = arr.length;

Voluntad arrayLength contener 10, el tamaño asignado de la matriz o 4, la cantidad de elementos que se han asignado explícitamente?

  • Esta pregunta tiene 1 millón de visitas debido al título extremadamente genérico que no ha reflejado bien el contenido de la pregunta hasta 2022, pero no entiendo por qué OP simplemente no lo hizo. ejecutar el código para ver cuál fue el resultado, a menos que esté malinterpretando la pregunta.

    – ggorlen

    28 de diciembre de 2022 a las 23:29

Avatar de usuario de Kai
kai

Contiene el tamaño asignado, 10. Los índices no asignados contendrán el valor predeterminado que es 0 para int.

  • Sí, las matrices son asignación de memoria estática.

    – Ramón Saraiva

    6 de enero de 2012 a las 9:38


  • ¿Puedes mostrar el javadoc? No sé dónde está esta propiedad de “longitud”.

    – Felipe Rego

    13 de febrero de 2018 a las 18:44

  • @PhilipRego Está en la especificación del idioma docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.3

    – Torben

    5 de abril de 2019 a las 7:12

Avatar de usuario de Costi Ciudatu
Costi Ciudatu

En primer lugar, length es una propiedad, por lo que sería arr.length en lugar de arr.length().

Y devolverá 10, el tamaño declarado. Los elementos que no declaras explícitamente se inicializan con 0.

  • No se puede invocar length() en el tipo de matriz long[]java(67108980)

    – Alessandro Ornano

    19 de febrero de 2019 a las 18:23

  • @AlessandroOrnano sí, eso es exactamente lo que dijo la respuesta que sucedería.

    – ggorlen

    28 dic 2022 a las 23:30


Avatar de usuario de Ravi Pandey
Ravi Pandey

Para encontrar la longitud de una matriz A deberías usar el length propiedad. es como A.lengthno utilice A.length() se utiliza principalmente para el tamaño de objetos relacionados con cadenas.

ingrese la descripción de la imagen aquí

La propiedad de longitud siempre mostrará el espacio total asignado a la matriz durante la inicialización.

Si alguna vez tiene alguno de estos tipos de problemas, la forma más sencilla es ejecutarlo. ¡Feliz programación!

Las matrices son una asignación de memoria estática, por lo que si inicializa una matriz de enteros:

int[] intArray = new int[15];

la longitud sera siempre 15, sin importar cuántos índices se llenen.

Y otra cosa, cuando inicias una matriz de enteros, todos los índices se llenarán con “0”.

En este caso, arr.length devolverá 10, el tamaño de la matriz que asignó. El tamaño lógico realmente no se aplica aquí, ya que se trata de una matriz de longitud fija.

Cuando inicializas la matriz:

int[] arr = new int[10];

Java creará una matriz con 10 elementos e inicializará todos estos a 0. Consulte la especificaciones del lenguaje Java para obtener detalles de los valores iniciales para este y otros tipos primitivos.

Avatar de usuario de Dirk
Puñal

En Java, su tamaño “real” y “lógico” son los mismos. El tiempo de ejecución llena todas las ranuras de matriz con valores predeterminados en el momento de la asignación. Entonces tus a contiene 10.

Avatar de usuario de Patrick Haugh
patricio haugh

int[] arr = new int[10];

arr es un int matriz de tipos que tiene tamaño 10. es una matriz de 10 elementos. Si no inicializamos una matriz por defecto, los elementos de la matriz contienen un valor predeterminado. En el caso de la matriz int, el valor predeterminado es 0.

length es una propiedad que se aplica a una matriz.
aquí arr.length daré 10.

¿Ha sido útil esta solución?