int[] drawNumbers = new int[10];//Array With 10 Random Numbers USED for DRAWN NUMBERS
String x = "Drawn Numbers: ";
List<Ticket> ticketWon ;
do{
//GENERATING 10 Random Numbers
for (int i = 0; i <= drawNumbers.length -1 ; i++) {
Random r = new Random();
drawNumbers[i] = r.nextInt(99) + 1;
x += drawNumbers[i] + " ";
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试生成10个必须随机生成的随机数和唯一.我的问题是,Random r = new Random()有时会显示复制的数字.如何在没有重复的情况下从1到99生成10个随机数?
问题在于彩票系统
我想使用,Collection.Shuffle但我不确定它应该如何实现.
这是实现所需结果的另一种方法.我们使用值1到99填充列表.然后我们将列表洗牌并获取前10个值:
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i=1; i<100; i++) {
list.add(new Integer(i));
}
Collections.shuffle(list);
for (int i=0; i<10; i++) {
System.out.println(list.get(i));
}
}
Run Code Online (Sandbox Code Playgroud)
您不必进口/直接处理Random,这是一个加号.但是,正如@Voicu所指出的那样(在评论中)shuffle确实使用了随机:
public static void shuffle(List<?> list) {
if (r == null) {
r = new Random();
}
shuffle(list, r);
}
private static Random r;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |