我有一个例子,就是如何在不重复的情况下生成随机图像,例如在数组中驱动15幅图像和7幅图像来发送图像视图,但这是不重复的。
int[] img={ R.drawable.ima1,R.drawable.ima2,R.drawable.ima3,R.drawable.ima4,R.drawable.ima5,R.drawable.ima6,R.drawable.ima7,R.drawable.ima8,R.drawable.ima9,R.drawable.ima10,R.drawable.ima11,R.drawable.ima12,R.drawable.ima13,R.drawable.ima14,R.drawable.ima15};
int [] game= new int[7];
Random numerRan = new Random();
for (int i=0;i<game.length ;i++)
{
int num= numerRan.nextInt(17);
int x= img[num];
game[i]=img[num];
}
img1.setImageResource(juego[0]);
img2.setImageResource(juego[1]);
img3.setImageResource(juego[2]);
img4.setImageResource(juego[3]);
img5.setImageResource(juego[4]);
img6.setImageResource(juego[5]);
img7.setImageResource(juego[6]);
img8.setImageResource(juego[7]);当我按下按钮控制图像得分牧场的位置,所产生的。我的问题是图像被重复了。
我使用2种安排,第一种是保存所有的图像,第二种是保存随机图像,以分配图像视图。
发布于 2016-06-06 03:18:29
而不是使用int[]数组,而是使用List<Integer>,例如ArrayList<Integer>。
这样,您将能够使用Collections#shuffle(),这将具有所需的效果。它会随机改变你的名单,以一种不重复的方式。稍后您所要做的就是在这个List上迭代。
有关更多信息,请参阅集合文档。
还可以将该数组转换为List,如下所示:
List<Integer> myList = Arrays.asList(img);有关这方面的更多信息,请看一看这个问题。
https://stackoverflow.com/questions/37649015
复制相似问题