java - 如何使用随机类在数组列表中找不到选择号?
问题描述
我有包含数字的数组列表
例如
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(54);
numbers.add(11);
numbers.add(6);
numbers.add(8);
numbers.add(32);
我想使用随机类选择在数组列表中找不到的新数字
我的尝试
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(54);
numbers.add(11);
numbers.add(6);
numbers.add(8);
numbers.add(32);
randomQuestion = new Random().nextInt(numbers.size());
for (int i : numbers) {
if (i == randomQuestion) {
randomQuestion = new Random().nextInt(numbers.size());
}else{
numbers.add(randomQuestion);
}
}
我找到了很多主题,但没有与我合作
解决方案
首先声明一个变量,它是要生成的最大整数(我使用 100),然后在循环中生成随机数,直到列表中不存在 1:
int max = 100;
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(54);
numbers.add(11);
numbers.add(6);
numbers.add(8);
numbers.add(32);
int randomQuestion = 0;
boolean exists = false;
do {
randomQuestion = new Random().nextInt(max) + 1;
exists = numbers.contains(randomQuestion);
} while(exists);
numbers.add(randomQuestion);
System.out.println(randomQuestion);
请注意,随着列表的增长,循环可能需要更长的时间才能完成,如果列表中包含 1-100 的所有数字,则循环不会停止。
因此,您必须检查是否所有数字都已生成,或者列表的大小是否 < 100,如果是,则要求一个新的随机数。
推荐阅读
- python - 如何在 Python 中从表 PostgreSQL 中提取数据
- python-3.x - 为什么我会得到一个“无”响应?这到底是什么意思?
- linux - 当tracing_threshold 不为零时,function_graph 插件无法记录 function_entry 记录
- haskell - Nix 构建无法构建 haskell 包“由于来自 Cabal 的严重配置时警告而中止”“未找到 uhc”
- javascript - Flask - 检查服务器上是否存在文件,如果存在则返回警报
- c# - 在c#中获取最大柱形图的标签
- javascript - 允许使用 Express JS 和 HTML5 fetch() 进行跨域请求
- r - 制作数据框,并使用它来创建直方图
- python - 即使某些元素不存在,也要刮掉所有东西
- laravel - 如何在 laravel (sweetalert2) 中包含来自 node_modules 的文件