【发布时间】:2014-12-09 23:00:48
【问题描述】:
我有两个 ArrayList,一个是 Bitmap 类型,包含图片,另一个是 String,包含位图的文本。
我只是想打乱Bitmap,但是String ArrayList应该是相同的顺序。
private ArrayList<Bitmap> tmpBitmap = new ArrayList<Bitmap>();
private ArrayList<String> tmpName = new ArrayList<String>();
我试过这个,但它以不同的顺序随机播放。
Collections.shuffle(tmpWord);
Collections.shuffle(tmpName);
【问题讨论】:
-
我认为您的意思是您希望两个并行列表具有相同的随机播放。您最好将相关项目放入对象中,而不是使用并行列表。
-
你是什么意思?你能发布一个示例代码吗?
-
理论上,您可以使用相同的种子创建两个 java.util.Random 实例,并在第一次 shuffle 时指定其中一个,在第二次 shuffle 时指定另一个。给定相同长度和相同序列的伪随机数,shuffle 将产生相同的排列。通过将字段组合到单个对象中来摆脱并行列表可能会产生更易于维护的代码。
-
您可以使用第三个整数列表,它表示指向其他两个列表的索引点。你会洗牌这个列表,并使用你从这个列表中检索到的任何值作为其他两个的索引......
标签: java android arrays arraylist shuffle