Java初学者挑战:在while循环中生成随机数

Java初学者挑战:在while循环中生成随机数,java,Java,这个挑战来自第4章 编写一个while循环,该循环生成1到100之间的随机数 在生成相同的数字两次后停止循环 我最担心的是,我不知道如何继续初始化数组(如果您在这里使用数组的话),因为我不知道数组的大小(如果这有意义的话) 我能得到一些指导吗?如果随机数仅在1和100之间生成,则使用大小为100的数组。但是,一般来说,该问题可以通过更通用的关联容器(例如HashMap)来解决,其中不需要连续键。如果随机数仅在1和100之间生成,则使用大小为100的数组。但是,一般来说,这个问题可以通过一个更通用

这个挑战来自第4章

编写一个
while
循环,该循环生成1到100之间的随机数 在生成相同的数字两次后停止循环

我最担心的是,我不知道如何继续初始化数组(如果您在这里使用数组的话),因为我不知道数组的大小(如果这有意义的话)


我能得到一些指导吗?

如果随机数仅在1和100之间生成,则使用大小为100的数组。但是,一般来说,该问题可以通过更通用的关联容器(例如HashMap)来解决,其中不需要连续键。

如果随机数仅在1和100之间生成,则使用大小为100的数组。但是,一般来说,这个问题可以通过一个更通用的关联容器来解决,例如HashMap,其中不需要连续键。

如果“你不知道数组的大小”,那么你需要一个动态增长的“数组”。。。这是一个很好的例子

显然有更有效的方法,但我认为这目前还可以。

如果“你不知道数组的大小”,那么你需要一个动态增长的“数组”。。。这是一个很好的例子


显然有更有效的方法,但我认为现在就可以了。

您还可以使用Java
集的实现,它确保没有重复元素(一种检测重复元素的简单方法)。但是,声明一个简单的
int[]numbers=int[100]()数组也可以做到这一点:-)。

您还可以使用Java
集合的实现,它确保没有重复元素(一种检测重复元素的简单方法)。但是,声明一个简单的
int[]numbers=int[100]()数组也会起作用:-)。

在我看来,逻辑应该是初始化一个100长度的数组,以及一个零索引的计数器变量。如果为true,则创建一个介于1和100之间的随机整数。检查数组中生成的数字的索引。如果未找到,则添加数字并递增计数器

下面是伪代码

int nums[] = new int[100];
counter = 0;
while(true) {
    test = random(1, 100);
    if(nums.indexOf(test) != -1) {
        return;
    }

    nums[counter] = test;
    counter++;
}

在我看来,逻辑应该是初始化一个100长度的数组,以及一个零索引计数器变量。如果为true,则创建一个介于1和100之间的随机整数。检查数组中生成的数字的索引。如果未找到,则添加数字并递增计数器

下面是伪代码

int nums[] = new int[100];
counter = 0;
while(true) {
    test = random(1, 100);
    if(nums.indexOf(test) != -1) {
        return;
    }

    nums[counter] = test;
    counter++;
}

您可以使用大小为100的布尔值数组;这是家庭作业,简单的家庭作业。这类东西……好吧,我会保持沉默。如果我不知道什么,我会问,所以请为自己保留一些明智的评论,让这更有趣,而不是100个
bool
s数组,你可以使用两个
long
s。提示:使用位技巧。您可以使用大小为100的布尔数组。这不是挑战;这是家庭作业,简单的家庭作业。这类东西……好吧,我会保持沉默。如果我不知道什么,我会问,所以请为自己保留一些明智的评论,让这更有趣,而不是100个
bool
s数组,你可以使用两个
long
s。提示:使用位技巧。+1表示建议哈希集。对于这个任务,java.util.HashSet可能比HashMap更适合,不过,建议使用散列集时,+1。不过,java.util.HashSet可能比HashMap更适合这项任务。不幸的是,Russell先生还没有把我介绍给ArraList,所以这必须是另一种方式。@lemmetry我真的不明白comp sci学生们的这种“我没有在课堂上学过,所以它是被禁止的”态度。大学的一切都是自主学习不幸的是,拉塞尔先生还没有把我介绍给ArraList,所以这必须是另一种方式。@lemmetry我真的不明白comp-sci学生们的这种“我没有在课堂上学会,所以这是被禁止的”态度。大学就是自我导向的学习