我有一个整数数组int[] a = new int [5]
。
在我的代码中,我只在索引0和1处存储了2个值。
a[0]=100
和a[1]=101
现在我需要将数组大小/长度设为2。
我应该做什么?
答案 0 :(得分:9)
你的数组长度是5,而不是2.你已经将数组定义为5个元素长,你最终使用的数量是无关紧要的。
你可以做的是:
List<Integer> a = new ArrayList<Integer>();
a.add(100);
a.add(101);
System.out.println(a.size());
会给你2
答案 1 :(得分:6)
你不能 - 没有设置的元素和已设置为0的元素之间没有区别。数组的实际长度是5,并且总是为5.(数组不能创建后改变长度。)
当然,如果你知道你永远不会使用0,你可以写:
int size = 0;
for (int value : a)
{
if (value != 0)
{
size++;
}
}
...但是如果您尝试在开始时将数组用作具有“实时”段的缓冲区(如ArrayList
那样),那么您必须自己维护该大小。
答案 2 :(得分:1)
您无法更改数组的大小。但是,您可以创建具有正确大小的新数组,并将您感兴趣的数据复制到新数组中。
答案 3 :(得分:1)
您可以遍历数组并检查最后一个非0的索引 - 或者如果您使用Integer
类型,您可以执行相同的检查但检查null而不是0.但这不会给你一个长度,它只是对你使用了多少个值的糟糕估计。
更好的方法是使用arraylist然后获得它的大小。你最有可能在这里使用数组用于错误的目的。
答案 4 :(得分:1)
使用ArrayList
或Vector
。
Vector intvec = new Vector();
intvec.add(100);
intvec.add(101);
System.out.println(intvec.size());