如何拥有唯一的随机数?
问题内容:
这就是我在1到6之间生成唯一编号并从drawable文件夹中获取适当图像的方式。
Random rand = new Random();
// n = the number of images, that start at idx 1
rndInt = rand.nextInt(6) + 1;
String imgName = "card" + rndInt;
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());
imgView.setImageResource(id);
我想要的是,我必须调用此方法7次,并且每次此方法应返回唯一的随机数。因此,所有已选择的数字都不会再次出现。
问题答案:
解决此类问题的常用方法是创建一个包含每个可能值的列表,并对其进行混洗(使用Collections.shuffle)。然后,每当您需要一个值时,便从列表中消费一项。这将确保您不会多次使用相同的值,但仍允许使用随机顺序。