繁体   English   中英

根据特定特征对随机整数数组进行计数或过滤

[英]Either counting or filtering an array of random integers based on specific characteristics

我的问题是我必须创建一个从0到100的随机整数数组,并计算所产生的一位整数的数量。

到目前为止,我有这个:

public class randomarray {
    public static void main(String[] args) {

        int i;
        int smallintegers;
        int[] RandomArray = new int[10];
        for(i = 0; i <  RandomArray.length; i++) {
            RandomArray[i] = (int)(Math.random() * 100);
            System.out.print(RandomArray[i] + "  ");
            }
    }
}

这可以工作并创建一个随机数字数组,如下所示:

17  56  44  41  42  96  8  42  21  86  

现在,我需要找到一种方法来计算一位整数的数量,在这种情况下,它应该是1。

我想到的第一种方法是使用filter()复制一位整数,从filter()创建一个新数组,然后产生新数组的长度。

提前致谢

构建数组时如何检查一位数整数:

int numSingle = 0;
for (i=0; i < RandomArray.length; i++) {
    int num = (int)(Math.random() * 100);
    if (num < 10) ++numSingle;
    RandomArray[i] = num;
    System.out.print(num + "  ");
}

System.out.println("There are " + numSingle + " integers in the array.");

如果由于某种原因,您无法在构建数组时对其进行检查(例如,您无法控制地从某个API接收到该数组),则可以按照Wombat的建议进行迭代。 如果您使用Java 8流来执行此操作,我希望它也会在内部遍历数组。

这是您可以如何使用流来回答相同的问题:

int numSingle = Arrays.stream(RandomArray).filter(n -> n < 10).toArray().length;

另一种简单但不那么优雅的方法是将每个整数转换为字符串并使用string.length。 我知道我不允许在我的课程中使用lambda表达式,因此这是一条不包含它的路线。

暂无
暂无

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

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