Java 如何生成一个随机数,但它不';不能产生相同的数字

Java 如何生成一个随机数,但它不';不能产生相同的数字,java,random,Java,Random,可能重复: 例如,我需要做一个从1到30的随机数。但它不会产生相同的随机数。产生的数字必须不同 可能吗 谢谢创建一个包含1-30的列表,使用Collections.shuffle()对其进行洗牌,然后遍历该列表。当然,在列表的末尾,不可能有一个尚未生成的新数字。您需要保留一个已生成数字的列表,这样,如果随机数字在该列表中,它将重试。您可以使用此问答中的技巧:@DevinStewart:这是非常低效的。考虑一下生成第30个数字所需的重试次数。@JBNizet:True,如果他得到了全部30个数字

可能重复:

例如,我需要做一个从1到30的随机数。但它不会产生相同的随机数。产生的数字必须不同

可能吗


谢谢

创建一个包含1-30的
列表
,使用
Collections.shuffle()
对其进行洗牌,然后遍历该列表。当然,在列表的末尾,不可能有一个尚未生成的新数字。

您需要保留一个已生成数字的
列表
,这样,如果随机数字在该列表中,它将重试。您可以使用此问答中的技巧:@DevinStewart:这是非常低效的。考虑一下生成第30个数字所需的重试次数。@JBNizet:True,如果他得到了全部30个数字。我承认你的解决方案效率更高,因此投了赞成票。@DevinStewart即使他只得到两个数字,也会更有效。更具确定性。