假设我有一个数组
int theArray = new int[20];
数组的长度是20,但计数是0。我怎么才能拿到点数?
发布于 2010-12-15 00:00:58
遍历它并计算非空的元素:
int counter = 0;
for (int i = 0; i < theArray.length; i ++)
if (theArray[i] != null)
counter ++;
这可以通过使用for:each循环和诸如此类的命令来整理,但这是摘要。
或者保留一个计数器,当你添加一个元素时,递增它。
发布于 2010-12-15 00:00:57
我认为您可能需要的是一个ArrayList
而不是一个数组。这将允许您执行以下操作:
ArrayList<Integer> arr = new ArrayList<Integer>(20);
System.out.println(arr.size());
输出将是0
。
然后,您可以向列表中添加内容,它将为您跟踪计数。(它还会根据需要增加后备存储的大小。)
发布于 2010-12-15 00:01:59
Java没有数组中所用元素的“计数”的概念。
为了实现这一点,Java使用了ArrayList
。List
是在一个数组之上实现的,当它确定它不够大时(有时当它太大时),该数组就会调整大小。
要获得计数,可以使用mylist.size()
来确保使用mylist.ensureCapacity(20)
的容量(底层数组支持)。为了消除额外的容量,您可以使用mylist.trimToSize()
。
https://stackoverflow.com/questions/4441099
复制相似问题