gpt4 book ai didi

java - 填充数组时检查重复项

转载 作者:行者123 更新时间:2023-12-03 04:22:43 26 4
gpt4 key购买 nike

我有一个数组,其中填充了 6 个随机生成的数字。首先,它生成一个 1 到 49 之间的随机数,然后将其与数组中的数字进行检查。如果发现重复,则应再次生成随机数,然后再次执行检查。如果没有重复项,则将该数字添加到数组中。

代码如下:

public void populateArray()
{
for(int i = 0; i < numberLine.length; i++)
{
randomNumber = 1 + randomGen.nextInt(49);
for(int j = 0; j < i; j++)
{
if (numberLine[j] == randomNumber)
{
i--;
}
else
{
continue;
}
}
if(i >= 0)
{
numberLine[i] = randomNumber;
}
else
{
continue;
}
}
Arrays.sort(numberLine);
}

但是,由于某种原因,这仍然允许重复,尽管很少(大约 50 个数组中有 1 个),例如 6 6 16 24 34 46。但是,当我尝试通过取出随机数元素并使用 30 这样的数字来复制此结果时,我无法重现结果。出了什么问题?

最佳答案

使用集合会容易得多,例如 TreeSet ,它既已排序又没有重复

Set<Integer> set = new TreeSet<Integer>();
while (set.length() < 6) {
set.add(randomGen.nextInt(49));
}

如果您确实想要一个数组,请在之后使用toArray()

关于java - 填充数组时检查重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8952585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com