我在尝试从Java数组中删除所有0值时遇到一些问题,该数组是预定义的,最大数量为50。如果用户输入10个值,则表中始终有40 x 0 。

我正在尝试查找不包含0值的该数组的长度,因此该数组的长度应仅由值1和以上定义。

这是我的代码片段。

double[] storedValues = {32.0,42.4,34.5,32.4,0,0,0,0,0,0,0,0,0,0...}
arrayLength = storedValues.length;


当前,arrayLength将返回“ 50”,因为这是我的数组的预定义大小。我试图使此返回“ 4”,因为在此数组中只有4个值超过0。

任何帮助深表感谢。

最佳答案

storedValues,过滤大于0的元素,然后计数。喜欢,

int count = (int) Arrays.stream(storedValues).filter(d -> d > 0).count();


或者,循环计算自己

int count = 0;
for (double d : storedValues) {
    if (d > 0) {
        count++;
    }
}

10-05 21:28