我声明了一个数组,如下所示:
int[] arr = new int[10];
然后,我为数组分配了以下值:
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
然后,我声明并初始化了一个整数变量:
int arrayLength = arr.length;
这对于查找实际大小很有用,但是有什么方法可以找到数组的逻辑大小吗?
我声明了一个数组,如下所示:
int[] arr = new int[10];
然后,我为数组分配了以下值:
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
然后,我声明并初始化了一个整数变量:
int arrayLength = arr.length;
这对于查找实际大小很有用,但是有什么方法可以找到数组的逻辑大小吗?
Answers:
首先,length
是属性,因此它将是arr.length
而不是arr.length()
。
它将返回10,即声明的大小。您未明确声明的元素将初始化为0。
要查找数组的长度,A
应使用length
属性。如A.length
,不要将A.length()
其主要用于与字符串相关的对象的大小。
length属性将始终显示初始化期间为数组分配的总空间。
如果您遇到任何此类问题,那么简单的方法就是运行它。编程愉快!
数组是静态内存分配,因此,如果您初始化整数数组:
int[] intArray = new int[15];
无论填充多少索引,长度始终为 15。
另外,初始化整数数组时,所有索引都将填充为“ 0”。
`
int array [] = new int [3]; array.length;
所以在这里我们创建了一个内存空间为3的数组...这就是实际的样子
0th 1st 2nd ...........>索引2 4 5 .....> Number
因此,如您所见,此数组的大小为3,但数组的索引最多为2,因为任何数组均从第0个索引开始。
第二条语句的输出应为3,因为数组的长度为3 ...请不要混淆索引值和数组的长度...。
干杯!
int arr[]={4,7,2,21321,657,12321};
int length =arr.length;
System.out.println(length); // will return 6
int arr2[] = new int[10];
arr2[3] = 4;
int length2 =arr2.length;
System.out.println(length2); // // will return 10. all other digits will be 0 initialize because staic memory initialization
它包含分配的大小10。其余索引将包含默认值0。
它应该是:
int a = arr.length;
应该避免括号。
Java数组实际上是固定大小的,其他答案则说明.length并没有真正实现您的期望。我只是想补充一下,鉴于您的问题,您可能想使用的是ArrayList,该数组可以增长和收缩:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
这里的.size()方法将向您显示列表中元素的数量,您可以在添加内容时增加它的数量。
数组是在Java编译时分配的内存,因此它们是静态的,未显式设置或修改的元素设置为默认值。您可以使用类似这样的代码,尽管不建议使用它,因为它不计算默认值,即使您以这种方式显式初始化它们,也很可能会导致错误。正如其他人所说,当寻找实际大小时,必须使用“ .length”而不是“ .length()”。
public int logicalArrayLength(type[] passedArray) {
int count = 0;
for (int i = 0; i < passedArray.length; i++) {
if (passedArray[i] != defaultValue) {
count++;
}
}
return count;
}