我放入数组的文件很少。 我将文件随机播放,以便可以按随机顺序显示。 如何知道数组索引0实际上是image1.txt或image2.txt还是image3.txt? 提前谢谢。
String[] a = {"image1.txt","image2.txt","image3.txt"};
List<String> files = Arrays.asList(a);
Collections.shuffle(files);
答案 0 :(得分:3)
我不确定你要做什么。
要访问随机列表的第一个元素,请使用files.get(0)
。
如果你想知道每个元素的去向,我建议你采取另一种方法。创建从0
到a.length() - 1
的整数列表,包括该列表并随机播放该列表。然后手动将数组a
置换为新集合。
答案 1 :(得分:0)
注意:Arrays.asList()将创建一个包含传递数组内容的NEW列表。使用Collections.shuffle()时,根本不会修改原始数组。
Peter正确指出我们Arrays.asList()不会复制。返回的列表是“直写”回原始数组。对列表进行洗牌将随机播放原始数组的内容。另外值得注意的是列表是不可变的(无法添加新元素)但通常我发现Arrays.asList()的使用无论如何都涉及不可变列表。
files.get(0); // get the first elements in shuffled list, random
// as greg said
int index = files.indexOf(a[0]); // find out where "image1.txt" is in the list
files.get(index); // get "image1.txt" back from the list