java如何获取非重复随机整数?
我有一个Android应用程序,它非常简单,基本上我从数据库中获取一个字符串,然后我按下一个按钮,然后获取另一个字符串,除了我想获取随机字符串,并且在“使用”后不再重复它们
public String getQuestion() {
mydManager.openReadable();
ArrayList<String> tableContent = mydManager.retrieveRows();
int size = tableContent.size();
Random rand = new Random();
int rand_int = rand.nextInt(size);
String a = tableContent.get(rand_int);
String[] myarray = a.split("\n");
String Rquestion = (myarray[1]);
question = findViewById(R.id.question);
question.setText(Rquestion);
return a;
}
一旦我在数组中得到索引为1的问题,我就不想在调用此函数时再次遇到同样的问题
# 1 楼答案
好的,随着更多的问题被添加到你的数据库中, 您不能仅从数据库检索一次问题列表。你必须在每次点击按钮时都这样做。 现在您有两种选择:
维护已使用索引/数字的列表:当您生成下一个随机数字时,这些索引/数字应该不同。如果相同,则重新生成。此外,在数据库中添加/检索的问题不应改变之前问题的顺序
从arraylist和数据库中删除已使用的问题(如果未在其他地方使用,则无需删除该问题)
# 2 楼答案
全局数组列表声明
//onCreate
以上代码每次生成新的整数
# 3 楼答案
与每次生成新问题时都检索行不同,您可以将
ArrayList<String>
声明并初始化为全局变量,在获得随机变量后,将其从数组中删除这应该能奏效