自9月底以来,我一直在做一个MSc软件开发转换课程,其主要语言是Java。 我们有第一次评估实际应用,我希望得到一些指导。
我们必须创建一个存储100个整数(所有这些都在1到10之间)的数组,这些数组由随机数生成器生成,然后每行打印出10个这个数组。对于第二部分,我们需要扫描这些整数,计算每个数字出现的频率,并将结果存储在第二个数组中。
我已经完成了第一次没问题,但我对如何做第二次感到困惑。我一直在查看扫描仪类,看看它是否有任何我可以使用的方法,但我没有看到任何方法。任何人都可以指出我正确的方向 - 不是答案,而是它来自哪个库?
到目前为止代码:
import java.util.Random;
public class Practical4_Assessed
{
public static void main(String[] args)
{
Random numberGenerator = new Random ();
int[] arrayOfGenerator = new int[100];
for (int countOfGenerator = 0; countOfGenerator < 100; countOfGenerator++)
arrayOfGenerator[countOfGenerator] = numberGenerator.nextInt(10);
int countOfNumbersOnLine = 0;
for (int countOfOutput = 0; countOfOutput < 100; countOfOutput++)
{
if (countOfNumbersOnLine == 10)
{
System.out.println("");
countOfNumbersOnLine = 0;
countOfOutput--;
}
else
{
System.out.print(arrayOfGenerator[countOfOutput] + " ");
countOfNumbersOnLine++;
}
}
}
}
谢谢, 安德鲁
答案 0 :(得分:1)
您不需要任何库,只需遍历您的数组并计算:
for (int x : arrayOfGenerator)
ar2[x]++;
//test with
for (int i=0; i<ar2.length; i++)
System.out.println("num of "+i+" ="+ar2[i]);
答案 1 :(得分:1)
每次获得一个随机数时,将其存储在int
变量中,然后递增“计数数组”的相应存储桶:
int[] countingArray = new int[10];
for (int countOfGenerator = 0; countOfGenerator < 100; countOfGenerator++) {
// Get a number between 0 and 9 (inclusive); we'll add 1 to it in a moment
int number = numberGenerator.nextInt(10);
// Update your counts (array indexes start at 0, which is why we
// haven't added to `number` yet)
countingArray[number]++;
// Store the actual number, which we add to because the assignment
// is for 1-10, not 0-9
arrayOfGenerator[countOfGenerator] = number + 1;
}
现在,countingArray[0]
是您拥有的1
个,countingArray[1]
是您拥有的2
个等等。例如,x
是countingArray[x - 1]
1到10(包括1和10),x
是您拥有的{{1}}个数字。