如何在Java中为一系列值添加计数器



我有一个赋值,要求我创建一个包含10个数字的数组,每个数字都是1到100之间的随机数。然后列出数组中有多少个数在40到70之间。我有一个数组,但我不知道如何添加计数器。以下是我到目前为止写的。

package javaapplication10;
import java.util.Arrays;
/**
 *
 * @author Ravi
 */
public class JavaApplication10 {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int[] numbers = new int[10];
        //Generates 10 Random Numbers in the range 1 -20
        for(int i = 0; i < numbers.length; i++) {
            numbers[i] = (int)(Math.random()*100 + 1);
        }//end for loop
        System.out.println("Numbers Generated: " + Arrays.toString(numbers));
    }
    // TODO code application logic here
}

使用一个变量来跟踪计数,然后循环遍历数组,检查每个元素并相应地增加计数。

int count = 0;
for (int num : numbers) {
    if (num >= 40 && num <= 70) {
        count++;
    }
}
System.out.println(count);`

我假设您希望将40和70包含在范围内。如果没有,就把条件改成><。如果您还想打印这些值,您可以在if语句中添加System.out.println(num)

我不明白你到底是什么意思,但我感谢这是解决方案:

public static void main(String[] args) {
    int[] numbers = new int[10];
    int counter = 0;
    // Generates 10 Random Numbers in the range 1 -20
    for (int i = 0; i < numbers.length; i++) {
        numbers[i] = (int) (Math.random() * 100 + 1);
        if(numbers[i] >= 40 && numbers[i] <= 70)
            counter++;
    }// end for loop
    System.out.println("Numbers Generated: " + Arrays.toString(numbers));           
    System.out.println(counter);
}

最简单的代码是:

 System.out.println(Arrays.stream(numbers)
    .filter(i -> i >= 40)
    .filter(i -> i <= 70)
    .count());

这清楚地显示了计数的条件。

但是你甚至不需要数组来做这个统计测试:

System.out.println(IntStream.generate(() -> 1 + (int)(Math.random() * 100))
    .limit(10)
    .filter(i -> i >= 40)
    .filter(i -> i <= 70)
    .count());

相关内容

  • 没有找到相关文章

最新更新