作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Java 新手,我正在尝试随机化游戏的不重复数字。仅当我不添加break语句时,我的代码才会生成从1到75的唯一随机数(我必须这样做才能一次只得到一个数字)。我该怎么办?编辑 -(我想知道它不断重置的原因是否是因为我多次调用该方法?我不太确定如何解决这个问题)
public static void genNumber() {
Random random = new Random();
int num;
String u;
String letter = "";
HashSet<Integer> used = new HashSet<>(75);
for (int i = 1; i <= 75; i++){
ball.add(i);
}
while(used.size() > 0) {
num = 1 + random.nextInt(75);
if (used.contains(num)){
used.remove(new Integer(num));
u = Integer.toString(num);
System.out.print(u + "\n");
break;
}
if (!used.contains(num)){
continue;
}
}
这些数字是唯一且随机的,但我一次只想要一个数字(不重复),而不是一次全部 75 个。
最佳答案
也许每次您想要一个新的随机序列(例如一副纸牌)时都会对列表进行洗牌。每个元素都保证是唯一的。
List<Integer> balls = new ArrayList<>();
for (int i = 1; i <= 75; ++i) {
balls.add(i);
}
for (;;) {
// Shuffle the list every 75 draws:
Collections.shuffle(balls);
System.out.println(Arrays.toString(balls.toArray()));
// Consume the sequence
for (Integer ball : balls) {
take(ball);
}
}
关于java - 如何在java上生成随机唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54374617/
我是一名优秀的程序员,十分优秀!