有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组如何在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
}

共 (3) 个答案

  1. # 1 楼答案

    IMHO最简单的代码是:

     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());
    
  2. # 2 楼答案

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

    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);
    
    }
    
  3. # 3 楼答案

    只要有一个变量来跟踪计数,然后在数组中循环检查每个元素并相应地增加计数

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

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