Java 计算数组中包含一些空值的数据量

Java 计算数组中包含一些空值的数据量,java,Java,我正在用java编写代码,需要创建一个函数,返回当前在ArrayList中的数据对象数。目前,我有以下几点: int count=0; 对于(int i=0;i 例如,我有一些测试代码将(8)、null、null、(23)、(25)添加到数组中,当初始数组大小为10时,此函数应返回5。您将需要两个单独的计数器。第一个将正常计数。当您找到null数据时,第二个开始计数。然后,当您发现一个非空数据时,只需将第二个计数器添加到第一个计数器,并继续使用第一个计数器计数,直到再次找到空值 int coun

我正在用java编写代码,需要创建一个函数,返回当前在ArrayList中的数据对象数。目前,我有以下几点:

int count=0;
对于(int i=0;i
但问题是,包含空数据的数组列表是可以接受的,我必须将它们的空数据计入这个计数器。如何包含在数组中间的空数据,而不是不应该计算的空数据?< /P>
例如,我有一些测试代码将(8)、null、null、(23)、(25)添加到数组中,当初始数组大小为10时,此函数应返回5。

您将需要两个单独的计数器。第一个将正常计数。当您找到
null
数据时,第二个开始计数。然后,当您发现一个非空数据时,只需将第二个计数器添加到第一个计数器,并继续使用第一个计数器计数,直到再次找到空值

int count = 0;
for (int i = data.length - 1; i >= 0; i--)
    if (data[i] != null || count > 0)
        count += 1;
return count;
至少我是这样理解您的需求的——计算空值,除了后面的空值

但也许你不是这个意思

编辑
除非您实际使用的是
ArrayList
(如Jon所问),否则其中
.size()
与容量不同,并将计算所有添加的元素(包括空值)。实际上,您甚至无法从
ArrayList

获取容量。我假设您使用的是常规数组(您的问题对此有些含糊不清)。向后遍历数组,直到找到非空元素:

public static int count(Object[] a) {
    int i = a.length - 1;
    for (; i >= 0 ; i--)
        if (a[i] != null)
            break;
    return i + 1;
}
你也可以

public static <T> int count(T[] a) {
    int i = a.length - 1;
    for (; i >= 0 ; i--)
        if (a[i] != null)
            break;
    return i + 1;
}
输出:

5

它们是否在
数组中?还是
数组列表
?你的问题来来回回。。。
Object[] a = new Object[10];
a[0] = new Object();
a[3] = new Object();
a[4] = new Object();
System.out.println(count(a));
5