制作一个随机数组并逐个打印

时间:2015-04-05 15:12:23

标签: android arrays list random

我想制作一个随机数组并逐个打印。但我需要打印所有内容而不做任何重复。我尝试将其添加到列表中但似乎失败了。

我的代码:



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;
&#13;
&#13;

我想以随机顺序打印5x5 5 * 10 8/4,我想打印每一个而不再打印。

2 个答案:

答案 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++;
        }