我正在为类Frazione
创建一个函数库(它意味着分数),我需要处理类型为Frazione
的数组的逻辑大小。我怎样才能获得它?
我尝试了一个for循环和一个while循环,但我找不到正确的方法将使用过的索引与未使用的索引分开。
public static int size(Frazione[] set) {
int size = 0;
for (int i = 0; i < set.length; i++)
if (set[i] != null) //the only way I know not to count unused indexes
size++;
return size;
}
它应该返回数组中的元素数,但它甚至不会运行
你的代码运行正常。作为替代方案,您可以使用流API执行相同操作。有count()
方法返回long
类型。所以你可以把它投到int
:
public static int size(Frazione[] set) {
return (int)Arrays.stream(set)
.filter(Objects::nonNull)
.count();
}