Array - Loop - 在Java

时间:2016-10-09 08:56:45

标签: java

我必须编写一个程序,从0到9生成1000次随机整数并计算重复数。所以输出应该是:

0使用了123次, 1使用了89次, 2 301次, 。 。 9使用了23次

我必须使用math.random。我可以生成数字但是如何使用数组和循环?

感谢。

2 个答案:

答案 0 :(得分:1)

如果可以使用java.util.Random,则不需要数组和循环。 试试这个。

System.out.println(new Random().ints(1000, 0, 10)
    .boxed()
    .collect(Collectors.groupingBy(i -> i, Collectors.counting()))
    .entrySet().stream()
    .map(e -> String.format("%d used %d times", e.getKey(), e.getValue()))
    .collect(Collectors.joining(", ")));

结果

0 used 109 times, 1 used 97 times, 2 used 81 times, 3 used 107 times, 4 used 121 times, 5 used 100 times, 6 used 97 times, 7 used 96 times, 8 used 80 times, 9 used 112 times

答案 1 :(得分:0)

尝试使用此代码,您将获得所需的输出:

**import** java.util.HashMap;  
**import** java.util.Map;

public **class** RandomCounting  
{

    static **Map**<Integer,Integer> result=new **HashMap**<Integer,Integer>();
    static int[] a=new int[10];
    public static void main(String[] args)
    {
        for (int i = 0; i < 1000; i++)
        {
            int value=(int)(Math.random()*10);
            //System.out.print(value+" ");
            switch(value)
            {
            case 0:result.put(0,a[0]++);break;
            case 1:result.put(1,a[1]++);break;
            case 2:result.put(2,a[2]++);break;
            case 3:result.put(3,a[3]++);break;
            case 4:result.put(4,a[4]++);break;
            case 5:result.put(5,a[5]++);break;
            case 6:result.put(6,a[6]++);break;
            case 7:result.put(7,a[7]++);break;
            case 8:result.put(8,a[8]++);break;
            case 9:result.put(9,a[9]++);break;
            }
            //System.out.print(value+" ");
        }

        for (int i = 0; i < 10; i++)
        {
            System.out.println(i+" used "+result.get(i)+" times");
        }
    }
}