我有一个对象的ArrayList
从我想要的项目的特定位置,但每次我启动活动时检索的位置应该是随机的,也不会重复,直到每个位置项目被完全检索。我用这个方法:如何从一个arraylist没有任何重复的随机项目android
public static int getRandomNumber(ArrayList<Integer> arr)
throws IllegalArgumentException {
try {
Random random = new Random();
int select = random.nextInt(arr.size());
int randomnum = arr.get(select);
GlobalData.randList.remove(select);
return randomnum;
} catch (IllegalArgumentException e) {
for (int i = 0; i < arr.size(); i++) {
GlobalData.randList.add(i);
}
return 0;
}
,但其没有工作,喜欢重复号的到来,有可能是因为每次我重新启动活动的原因。我在oncreate
而不是onResume
,但它没有按我的预期工作?有没有其他的方式来使用它?任何解决方案
使用Collections.shuffle –
我可以解释一下吗?它会在每个位置完成之前不会重复吗? – Reyjohn
评论很简短,因为我在过去的几个星期里多次提供了这个答案。 ;) –