我正在尝试使用一段代码,其中将生成随机数并将其保存在集合中,以便下次生成另一个随机数时,我可以检查这个新数字是否已经在列表中.
此方法的要点是生成1到118范围内的数字,不允许重复数字.
Random rand = new Random();
randomNum2 = rand.nextInt(118) + 1;
if (!generated.contains(randomNum2))
{
String strTemp = "whiteElements\\"+String.valueOf(randomNum2)+".JPG";
btnPuzzlePiece2.setIcon(new ImageIcon(strTemp));
generated.add(randomNum2);
btnPuzzlePiece2.repaint();
}
else
setPicForBtnGame1();
Run Code Online (Sandbox Code Playgroud)
但问题在于这段代码,因为程序继续生成数字,有可能有一个正确的随机数(在没有重复的范围内)想象在运行方法110次后...方法生成有效随机数的可能性减少到不到1%...这使程序有可能永远不会有1-118的数字列表,也浪费了太多的过程.
那怎么能正确写出来呢?ps我想到制作118个对象并将它们保存在一个集合中,然后生成一个随机对象,然后从列表中删除该对象,这样下一个元素就不会被复制.
请帮帮我...
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |