Declaro 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;
Esto será útil para encontrar el tamaño real, pero ¿existe algún método para encontrar el tamaño lógico de la matriz?
En primer lugar,
length
es una propiedad, por lo que sería enarr.length
lugar dearr.length()
.Y devolverá 10, el tamaño declarado. Los elementos que no declara explícitamente se inicializan con 0.
fuente
Para encontrar la longitud de una matriz
A
, debe usar lalength
propiedad. Es comoA.length
, no use, se usaA.length()
principalmente para el tamaño de objetos relacionados con cadenas.La propiedad de longitud siempre mostrará el espacio total asignado a la matriz durante la inicialización.
Si alguna vez tiene alguno de estos problemas, la forma más sencilla es ejecutarlo. ¡Feliz Programación!
fuente
Las matrices son una asignación de memoria estática, por lo que si inicializa una matriz de enteros:
La longitud será siempre 15, sin importar cuántos índices se llenen.
Y otra cosa, cuando inicializas una matriz de enteros, todos los índices se llenarán con "0".
fuente
En Java, su tamaño "real" y "lógico" es el mismo. El tiempo de ejecución llena todas las ranuras de matriz con valores predeterminados al momento de la asignación. Entonces, tu
a
contiene 10.fuente
En este caso, arr.length devolverá 10, el tamaño de la matriz que asignó. El tamaño lógico no se aplica realmente aquí, ya que se trata de una matriz de longitud fija.
Cuando inicializa la matriz:
Java creará una matriz con 10 elementos y los inicializará a 0. Consulte la especificación del lenguaje Java para obtener detalles de los valores iniciales para este y otros tipos primitivos.
fuente
arr
es unaint
matriz de tipos que tiene tamaño10
. Es una matriz de10
elementos. Si no inicializamos una matriz de forma predeterminada, los elementos de la matriz contienen un valor predeterminado. En el caso de la matriz int, el valor predeterminado es0
.length es una propiedad que se aplica a una matriz.
aquí
arr.length
te daré10
.fuente
'
así que aquí hemos creado una matriz con un espacio de memoria de 3 ... así es como se ve realmente
0 ° 1 ° 2 ° ...........> Índice 2 4 5 ...........> Número
Entonces, como puede ver, el tamaño de esta matriz es 3, pero el índice de la matriz es solo hasta 2, ya que cualquier matriz comienza con el índice 0.
La salida de la segunda declaración será 3 ya que la longitud de la matriz es 3 ... No se confunda entre el valor del índice y la longitud de la matriz ...
¡salud!
fuente
fuente
Contendrá el tamaño real de la matriz, ya que eso es lo que inicializó la matriz cuando la declaró. Java no tiene ningún concepto del tamaño "lógico" de una matriz, en lo que a él respecta, el valor predeterminado de 0 es tan lógico como los valores que ha establecido manualmente.
fuente
Contiene el tamaño asignado, 10. Los índices restantes contendrán el valor predeterminado que es 0.
fuente
Si desea el tamaño lógico de la matriz, puede recorrer todos los valores de la matriz y compararlos con cero. Incrementa el valor si no es cero y ese sería el tamaño lógico. Debido a que el tamaño de la matriz es fijo, no tiene ningún método incorporado, tal vez debería echar un vistazo a las colecciones.
fuente
Debería ser:
Deben evitarse los paréntesis.
fuente
Las matrices de Java en realidad tienen un tamaño fijo, y las otras respuestas explican cómo .length no está realmente haciendo lo que esperarías. Solo me gustaría agregar que, dada su pregunta, lo que podría querer usar es una ArrayList, que es una matriz que puede crecer y reducirse:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
Aquí, el método .size () le mostrará la cantidad de elementos en su lista, y puede aumentar esto a medida que agrega cosas.
fuente
si quiere decir "tamaño lógico", el índice de la matriz, entonces simplemente int arrayLength = arr.length-1; dado que el índice de la matriz comienza con "0", entonces el "índice de la matriz" lógico o siempre será menor que el tamaño real en "uno".
fuente
A las matrices se les asigna memoria en tiempo de compilación en Java, por lo que son estáticas, los elementos que no se establecen o modifican explícitamente se establecen con los valores predeterminados. Puede usar un código como este, aunque no se recomienda ya que no cuenta los valores predeterminados, incluso si los inicializa explícitamente de esa manera, también es probable que cause errores en el futuro. Como dijeron otros, al buscar el tamaño real, se debe usar ".length" en lugar de ".length ()".
fuente