【发布时间】:2020-11-25 22:42:42
【问题描述】:
我想生成 5 个随机数,如果该数字已经存在,请将其删除并替换为新的。重复该过程,直到生成的所有数字都是唯一的。但是,当我不断在我的数组中获取重复值时,我被卡住了。
import java.util.Random;
import java.util.ArrayList;
public class Question2_NEW
{
public static void main (String[] args)
{
System.out.println("Generating 5 random numbers from 0 to 5...");
Random rand = new Random();
int generate = rand.nextInt((5) + 1);
ArrayList<Integer> randomNumbers = new ArrayList<Integer>();
for (int i = 0; i < 5; i++)
{
generate = rand.nextInt((5) + 1);
randomNumbers.add(generate);
while (randomNumbers.contains(generate))
{
randomNumbers.remove(randomNumbers.get(i));
generate = rand.nextInt((5) + 1);
randomNumbers.add(generate);
break;
}
}
for (Integer i : randomNumbers)
{
System.out.println(i);
}
}
}
【问题讨论】:
-
为什么不直接使用 Set 而不是 List?一个 Set 不能有重复的值。您只需要添加值,直到您的集合大小为 5。
-
是的,你是对的。使用 Set 而不是 ArrayList 以避免重复时,我不知道该功能。感谢您指出这一点。
标签: java arrays loops arraylist random