Arreglo de cadena Java: ¿hay un tamaño de método?

Vengo de un fondo php y en php, hay una función array_size() que te dice cuántos elementos de la matriz se utilizan.

¿Hay un método similar para una matriz String[] ? Gracias.

Sí, .length ( .length 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 multidimensional, puede obtener la dimensión correspondiente simplemente agregando un ‘[0]’ a la matriz que está consultando hasta que llegue 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 

la propiedad final de array.length

es propiedad pública y final. Es final porque las matrices en Java son inmutables por tamaño (pero mutables por valor del elemento)

Las matrices son objetos y tienen un campo de longitud.

String [] haha ​​= {“olle”, “bulle”};

haha.length sería 2

En Java hay un campo de length 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 objeto [].

La respuesta es “Todos ellos”. Una matriz Java se asigna con un número fijo de ranuras de elemento. El atributo “longitud” le dirá cuántos. Ese número es inmutable por la vida de la matriz. Para un equivalente de tamaño variable, 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 elemento cuyos elementos son objetos nulos, por lo que aunque cuentan en el atributo de longitud, pero la mayoría de las definiciones de la gente, 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 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 de tamaño 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 las Listas, puede tener “En uso” para elementos no nulos, comprometidos, Todos los elementos comprometidos (incluidos los elementos nulos) o Todos los elementos, incluido el espacio de expansión actualmente asignado.

Hay una diferencia entre la longitud de String y la array para aclarar:

 int a[] = {1, 2, 3, 4}; String s = "1234"; a.length //gives the length of the array s.length() //gives the length of the string 

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. Cada vez que utilice cadenas y matrices en java, los tres modelos básicos que podría enfrentar son:

  1. String s = new String (“vidyasagar”);
    System.out.println (s.length ()); // En este caso solo estamos usando String. Sin atributo de longitud para cadenas. tenemos que usar el método de longitud ().
  2. int [] s = new int [10]; System.out.println (s.length); // aquí usamos el atributo de longitud de las matrices.
  3. String [] s = new String [10];
    System.out.println (s.length); // Aquí, aunque el tipo de datos es String, no es una sola String. s es una referencia para una matriz de cadenas. Entonces usamos el atributo de longitud de las matrices para express cuántas cadenas pueden caber en esa matriz.

No es realmente la respuesta a tu pregunta, pero si quieres tener algo así como una matriz que puede crecer y reducirse, no debes usar una matriz en Java. Probablemente sea mejor utilizando ArrayList u otra implementación de listas .

A continuación, puede llamar al tamaño () para obtener su tamaño.