Vengo de un fondo php y en php, hay una array_size()
función que te dice cuántos elementos en la matriz se usan.
¿Hay un método similar para una String[]
matriz? Gracias.
Vengo de un fondo php y en php, hay una array_size()
función que te dice cuántos elementos en la matriz se usan.
¿Hay un método similar para una String[]
matriz? Gracias.
Respuestas:
Sí, .length
(como propiedad, no es un método):
String[] array = new String[10];
int size = array.length;
array.length
En realidad es un miembro final de la matriz, no un método.
Además, probablemente sea útil tener en cuenta que si tiene una matriz de múltiples dimensiones, puede obtener la dimensión respectiva simplemente agregando un '[0]' a la matriz que está consultando hasta llegar al eje / tupla / dimensión apropiado.
Esto probablemente se explica mejor con el siguiente código:
public class Test {
public static void main(String[] args){
String[][] moo = new String[5][12];
System.out.println(moo.length); //Prints the size of the First Dimension in the array
System.out.println(moo[0].length);//Prints the size of the Second Dimension in the array
}
}
Que produce la salida:
5
12
Las matrices son objetos y tienen un campo de longitud.
Cadena [] haha = {"olle", "bulle"};
jaja.length sería 2
En java hay un length
campo que puede usar en cualquier matriz para averiguar su tamaño:
String[] s = new String[10];
System.out.println(s.length);
Si quieres una función para hacer esto
Object array = new String[10];
int size = Array.getlength(array);
Esto puede ser útil si no sabe qué tipo de matriz tiene, por ejemplo, int [], byte [] u Object [].
La respuesta es "Todos ellos". Una matriz de Java se asigna con un número fijo de ranuras de elementos. El atributo "length" te dirá cuántos. Ese número es inmutable para la vida de la matriz. Para un equivalente redimensionable, necesita una de las clases java.util.List, donde puede usar el método size () para averiguar cuántos elementos están en uso.
Sin embargo, hay "En uso" y luego está En uso . En una matriz de objetos de clase, puede tener ranuras de elementos cuyos elementos son objetos nulos, por lo que, aunque cuentan en el atributo de longitud, pero las definiciones de la mayoría de las personas, no están en uso (YMMV, dependiendo de la aplicación). No hay una función integrada para devolver los recuentos nulos / no nulos.
Los objetos de lista tienen otra definición más de "En uso". Para evitar la creación / destrucción excesiva de las estructuras de almacenamiento subyacentes, generalmente hay algo de relleno en estas clases. Se usa internamente, pero no se cuenta en el método size () devuelto. Y si intenta acceder a esos elementos sin expandir la Lista (a través de los métodos de agregar), obtendrá una excepción de índice ilegal.
Por lo tanto, para Listas, puede tener "En uso" para elementos comprometidos no nulos, Todos los elementos comprometidos (incluidos los elementos nulos) o Todos los elementos, incluido el espacio de expansión actualmente asignado.
Todas las respuestas anteriores son correctas. Lo importante a observar es que las matrices tienen un atributo de longitud pero no un método de longitud. Siempre que use cadenas y matrices en Java, los tres modelos básicos que podría enfrentar son:
Realmente no es la respuesta a su pregunta, pero si desea tener algo como una matriz que puede crecer y reducirse, no debe usar una matriz en Java. Probablemente sea mejor usando ArrayList u otra implementación de List.
Luego puede llamar a size () para obtener su tamaño.