[英]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.