Java 如何避免重复随机数并在android中选择另一个?

Java 如何避免重复随机数并在android中选择另一个?,java,android,Java,Android,我有一个数组列表和一个整数数组 ArrayList<Integer> ar= new ArrayList<Integer>(); int[] number= {0,1,2,3,4,5}; 但我没有想到这一点,它不会重复任何数字,但如果它在第二次单击中得到一个重复的数字,那么它就烤好了,但我想在整数数组中的每个数字都烤好后再烤,这应该是我修改过的逻辑吗?ArrayList ar=new ArrayList(); ArrayList<Integer> a

我有一个数组列表和一个整数数组

ArrayList<Integer> ar= new ArrayList<Integer>();
    int[] number= {0,1,2,3,4,5};
但我没有想到这一点,它不会重复任何数字,但如果它在第二次单击中得到一个重复的数字,那么它就烤好了,但我想在整数数组中的每个数字都烤好后再烤,这应该是我修改过的逻辑吗?

ArrayList ar=new ArrayList();
ArrayList<Integer> ar= new ArrayList<Integer>();
int[] number= {0,1,2,3,4,5};
for (int i : number) {
    ar.add(i);
}

Random r = new Random();

// repeat this part and you will never have duplicate numbers
int select = r.nextInt(ar.size());
int random = ar.get(select);
ar.remove(select);
int[]数={0,1,2,3,4,5}; for(int i:编号){ ar.add(i); } 随机r=新随机(); //重复这一部分,你将永远不会有重复的数字 int select=r.nextInt(ar.size()); int random=ar.get(选择); ar.remove(选择);
ArrayList ar=new ArrayList();
int[]数={0,1,2,3,4,5};
for(int i:编号){
ar.add(i);
}
随机r=新随机();
//重复这一部分,你将永远不会有重复的数字
int select=r.nextInt(ar.size());
int random=ar.get(选择);
ar.remove(选择);
LinkedList ar=new LinkedList();
int[]数={0,1,2,3,4,5};
for(int i:编号)
ar.add(i);
收藏。洗牌(ar);
//每次单击时:
如果(ar.isEmpty()){
//烤好了
}否则{
整数pop=ar.pop();
//烤面包汽水
}
LinkedList ar=new LinkedList();
int[]数={0,1,2,3,4,5};
for(int i:编号)
ar.add(i);
收藏。洗牌(ar);
//每次单击时:
如果(ar.isEmpty()){
//烤好了
}否则{
整数pop=ar.pop();
//烤面包汽水
}

如果希望每次都显示“Finished”(完成),不要将其放在条件块(也称为“else”)中如果希望每次都显示“Finished”(完成),不要将其放在条件块(称为“else”)中,它可以工作,但在2或3个按钮单击后,这是强制关闭的原因,ar中的索引越界异常。删除(随机)更新:应该是ar.remove(选择)而不是ar.remove(random),因为传入int值时存在API冲突。它可以工作,但在2或3个按钮单击后,这将导致强制关闭,并在ar.remove(random)中出现索引越界异常。remove(random)Updated:应该是ar.remove(select)而不是ar.remove(random),因为传入int值时存在API冲突这里没有称为pop的方法,请更正你的答案,我想会的work@Reyjohn列表没有pop方法,但LinkedList有。LinkedList实现队列。顺便说一句,这只是一个例子,你只需要将列表洗牌,然后一次取一个元素。这里没有叫做pop的方法,请更正你的答案,我想会的work@Reyjohn列表没有pop方法,但LinkedList有。LinkedList实现队列。顺便说一句,这只是一个示例,您只需要对列表进行洗牌,然后一次只取一个元素
ArrayList<Integer> ar= new ArrayList<Integer>();
int[] number= {0,1,2,3,4,5};
for (int i : number) {
    ar.add(i);
}

Random r = new Random();

// repeat this part and you will never have duplicate numbers
int select = r.nextInt(ar.size());
int random = ar.get(select);
ar.remove(select);
LinkedList<Integer> ar = new LinkedList<Integer>();
    int[] number = { 0, 1, 2, 3, 4, 5 };
    for (int i : number) 
        ar.add(i);
    Collections.shuffle(ar);


    //every time you click:
    if (ar.isEmpty()) { 
        //toast finished
    } else {
        Integer pop = ar.pop();
        //toast pop
    }