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

时间:2016-10-02 17:40:11

标签: java arrays netbeans counter

我有一项任务,要求我创建一个包含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
}

3 个答案:

答案 0 :(得分:3)

只需要一个变量来跟踪计数,然后遍历数组检查每个元素并相应地增加计数。

int count = 0;

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

我假设你想要40和70包括在范围内。如果您不这样做,只需将条件更改为><。如果您还想打印这些值,则只需在System.out.println(num)语句中添加if

答案 1 :(得分:0)

我不明白你的意思,但我感谢这是解决方案:

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);

}

答案 2 :(得分:0)

最简单的代码恕我直言:

 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());