Java中的数组长度
我声明了一个数组,如下所示:
int[] arr = new int[10];
然后我将下列值分配给数组:
arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4;
然后我宣布并初始化一个整数variables:
int arrayLength = arr.length;
arrayLength
包含什么? 它是否包含数组的实际大小或逻辑大小?
它包含分配的大小,10.未分配的索引将包含int的默认值0。
首先, length
是一个属性,所以它会是arr.length
而不是arr.length()
。
它将返回10,声明的大小。 您不明确声明的元素用0初始化。
要查找数组“A”的长度,您应该使用length属性。 它是“A.length”,不要用A.length()
它主要用于string相关对象的大小。
length属性将始终显示初始化期间分配给数组的总空间。
如果你遇到过这样的问题,简单的方法就是运行它。 快乐的编程
数组是静态内存分配,所以如果初始化一个整数数组:
int[] intArray = new int[15];
无论有多less个索引,长度总是 15。
另一件事,当你初始化一个整数数组时, 所有的索引都会被填充“0”。
在这种情况下,arr.length将返回10,你分配的数组的大小。 逻辑大小并不适用于此,因为这是一个固定长度的数组。
初始化数组时:
int[] arr = new int[10];
Java将创build一个包含10个元素的数组,并将所有这些元素初始化为0.请参阅Java语言规范以获取有关此和其他基本types的初始值的详细信息。
在Java中,您的“实际”和“逻辑”大小是相同的。 运行时在分配时使用缺省值填充所有数组插槽。 所以,你的a
包含10个。
`
int array [] = new int [3]; array.length;
所以在这里我们创build了一个内存空间为3的数组…这是它实际上的样子
0th 1st 2nd ………..> Index 2 4 5 ………..> Number
所以当你看到这个数组的大小是3,但是数组的索引只能达到2,因为任何数组都以0索引开始。
第二条语句的输出应为3,因为数组的长度是3 …请不要混淆索引值和数组的长度….
干杯!
它将包含数组的实际大小,因为这是您声明数组时初始化的数组。 Java没有数组“逻辑”大小的概念,就其而言,默认值0与您手动设置的值一样合乎逻辑。
它应该是int a = arr.length; 应该避免括号。
它包含分配的大小,10.剩余的索引将包含默认值0。
如果你想要数组的逻辑大小,你可以遍历数组中的所有值,并检查它们为零。 如果值不为零,则增加值,这将是逻辑大小。 因为数组大小是固定的,所以你没有任何内置的方法,可能你应该看看集合。