我想制作一个随机数组并逐个打印。但我需要打印所有内容而不做任何重复。我尝试将其添加到列表中但似乎失败了。
我的代码:
String quest1 = "5x5#5*10#8/4"
String[] quest = quest1.split("#");
ArrayList <String> question = new ArrayList<String>();
question.add(quest[0]);
question.add(quest[1]);
question.add(quest[2]);
Random rand = new Random();
int id = rand.nextInt(question.size());
System.out.println(question.get(id));
question.remove(id);
&#13;
我想以随机顺序打印5x5 5 * 10 8/4,我想打印每一个而不再打印。
答案 0 :(得分:0)
创建一个键值2d对象数组或整数和布尔值的hashmap。对所有数字保持布尔值为false(暗示该数字尚未打印)。然后使用Random类生成一个随机数。让它成为n。计算n%array.length。现在看看这个新索引是否在2dArray / hashmap中有true / false。如果为false则打印相应的数字,否则不打印任何内容。我希望你能清楚
答案 1 :(得分:0)
尝试以下代码
ArrayList<Integer> questionPrinted = new ArrayList<Integer>();
int i=0;
while (question.size()>0) {
Random rand = new Random();
int id = rand.nextInt(question.size());
if (questionPrinted.size() > 0) {
if (questionPrinted.contains(id)) {
while (!questionPrinted.contains(id))
id = rand.nextInt(question.size());
}
}
questionPrinted.add(i);
System.out.println(question.get(id));
question.remove(id);
i++;
}