使用变量名作为数组索引

时间:2009-03-22 14:24:52

标签: java arrays variables

我放入数组的文件很少。 我将文件随机播放,以便可以按随机顺序显示。 如何知道数组索引0实际上是image1.txt或image2.txt还是image3.txt? 提前谢谢。

String[] a = {"image1.txt","image2.txt","image3.txt"};
List<String> files = Arrays.asList(a);
Collections.shuffle(files); 

2 个答案:

答案 0 :(得分:3)

我不确定你要做什么。

要访问随机列表的第一个元素,请使用files.get(0)

如果你想知道每个元素的去向,我建议你采取另一种方法。创建从0a.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