繁体   English   中英

从双数组 Java 中删除所有 0 值

[英]Removing all 0 values from Double Array Java

我在尝试从 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++;
    }
}

只需使用此代码:

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

       for (int i = 0; i < storedValues.length; i++) {
        if(storedValues[i] > 0){
            arrayLength++;
        }

    }

//arrayLength 给你 4

这是一个使用流的方法:

Arrays.stream(storedValues).filter(v -> v != 0.0).count()

您可能希望首先避免添加零。 如果它是提示的一部分,那么您需要执行以下操作:

public double[] RemoveZeros(double[] source)
{
    return source.Where(i => i != 0).ToArray();
}

这将在数​​组中搜索零,然后删除它们。 希望这有帮助,伙计。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM