我用Java编写了一段代码,用于生成不重复数字的四位随机数,下面是我编写的代码:
以下是从
现在我的问题是,是否有更好的方法来完成这个任务?我能否以某种方式增强它?
Random r = new Random();
d1 = r.nextInt(9);
d2 = r.nextInt(9);
d3 = r.nextInt(9);
d4 = r.nextInt(9);
while(d1==d2||d1==d3||d1==d4||d2==d3||d2==d4||d3==d4)
{
if(d1==d2||d2==d3||d2==d4)
{
d2 = r.nextInt(9);
}
if(d1==d3||d2==d3||d3==d4)
{
d3 = r.nextInt(9);
}
if(d1==d4||d2==d4||d3==d4)
{
d4 = r.nextInt(9);
}
}
System.out.println(d1+""+d2+""+d3+""+d4);
以下是从
System.out.println(R1+""+R2+""+R3+""+R4);
生成的测试用例: 0123 | OK as required
1234 | OK as required
2123 | not OK because 2 is present more than one time
9870 | OK as required
0444 | not OK because 4 is present more than one time
现在我的问题是,是否有更好的方法来完成这个任务?我能否以某种方式增强它?
Set<Integer> set = new LinkedHashSet<Integer>();
并使用while
循环,直到其大小为4(或所需大小),在循环内部继续添加随机整数。请注意,LinkedHashSet 可以保留输入顺序并消除重复项。 - Luiggi Mendoza