Javastring数组:有一个方法的大小?
我来自一个PHP背景,在PHP中,有一个array_size()
函数,告诉你在数组中有多less元素被使用。
有一个类似的方法为String[]
数组? 谢谢。
是的, .length
(属性,而不是一种方法):
String[] array = new String[10]; int size = array.length;
array.length
它实际上是数组的最后一个成员,而不是一个方法。
array.length最终属性
这是公共和最终的财产。 这是最后的因为Java中的数组是不可变的大小(但可以通过元素的值)
数组是对象,它们有一个长度字段。
String [] haha = {“olle”,“bulle”};
haha.length将是2
另外,注意如果你有一个multidimensional array,你可以通过在你正在查询的数组上附加一个'[0]'来获得相应的维度,直到到达相应的轴/元组/维度。
这可能更好地解释下面的代码:
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 } }
哪个产生输出:
5 12
在Java中有一个length
字段,你可以用任何数组来找出它的大小:
String[] s = new String[10]; System.out.println(s.length);
如果你想要一个function来做到这一点
Object array = new String[10]; int size = Array.getlength(array);
如果你不知道你有什么types的数组,例如int [],byte []或Object [],这会很有用。
答案是“所有这些”。 java数组被分配了固定数量的元素插槽。 “长度”属性会告诉你多less。 这个数字对于数组的生命是不可改变的。 对于可resize的等价物,您需要一个java.util.List类 – 您可以在其中使用size()方法找出正在使用的元素数量。
但是,有“使用中”,然后有使用中 。 在一个类对象数组中,你可以有元素槽,其元素是空的对象,所以即使它们在长度属性中计数,但是大多数人的定义都没有被使用(YMMV,取决于应用程序)。 没有内build函数返回空/非空计数。
列表对象还有另一个“正在使用”的定义。 为了避免对底层存储结构的过度创build/破坏,这些类中通常会有一些填充。 它在内部使用,但不计入返回的size()方法中。 如果您尝试访问这些项目而不扩展列表(通过添加方法),您将得到一个非法的索引exception。
因此,对于列表,您可以有“正在使用”非空,已提交的元素,所有已提交的元素(包括空元素)或所有元素,包括当前分配的扩展空间。
String
和array
长度有一个区别来澄清:
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
以上所有答案都是正确的。 重要的是要注意的是数组有长度属性而不是长度方法。 每当你在java中使用string和数组,你可能面临的三个基本模型是:
- String s = new String(“vidyasagar”);
的System.out.println(s.length()); //在这种情况下,我们只使用String。 没有string的长度属性。 我们必须使用length()方法。 - int [] s = new int [10]; 的System.out.println(s.length); //这里我们使用数组的长度属性。
- String [] s = new String [10];
的System.out.println(s.length); //这里即使数据types是String,也不是一个String。 s是string数组的参考。 所以我们使用数组的长度属性来表示有多less个string可以适应该数组。
不是你的问题的答案,但如果你想有一个可以增长和缩小的数组,你不应该在java中使用一个数组。 您可能最好通过使用ArrayList或其他List实现。
然后你可以调用size()来获得它的大小。