我有如何生成随机图像而不重复,例如在阵列中驱动15个图像和7个图像来发送imageview但不重复。
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]);
当我按下按钮控制图像到分数时,rando生成的位置。我遇到的问题是图像重复出现。
我正在使用2种安排,第一种是保存所有图像,第二种是保留随机图像,这将分配图像视图。
答案 0 :(得分:0)
而不是使用int[]
数组,而是使用List<Integer>
,例如ArrayList<Integer>
。
这样,您就可以使用Collections#shuffle()
,这将产生预期的效果。它会以非重复的方式随机置换您的列表。您以后要做的就是迭代List
。
有关详细信息,请参阅Collections文档。
您还可以将该数组转换为List
,如下所示:
List<Integer> myList = Arrays.asList(img);
有关详细信息,请查看this question。