我用这段代码生成一个随机数:
int randomNumber = (int) (Math.random() * 7);
我想停止生成重复的号码,并且我想在我的应用再次打开后生成一个新号码。
我该怎么做?
最佳答案
将生成的数字存储在 Set
中。然后,每次生成新的随机数时,测试它是否已存在于此 Set
中。
Set<Integer> nums = new HashSet<Integer>();
// Initialize set on app boot
int rnum;
do {
rnum = (int) (Math.random() * 7);
} while (!nums.contains(rnum));
// Update the set
nums.add(rnum);
// Use rnum now..
您还需要在应用关闭之前保留Set
值;在 onPause()
或 onStop()
方法中。您可以使用 SharedPreferences
或简单地序列化/反序列化 Set
。使用数据库将是一种矫枉过正。
关于java - 如何产生不重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28567077/