Java 以相同顺序洗牌多个arrayList?

Java 以相同顺序洗牌多个arrayList?,java,arrays,loops,arraylist,shuffle,Java,Arrays,Loops,Arraylist,Shuffle,嗨,我有3个名为trackNum的数组列表,名称和持续时间。 arraylist的内容已连接,即trackNum名称和持续时间的索引1已链接 因此,我创建了第三个数组列表,其中填充了将被洗牌的数字。然后,这些数字将用作系统输出的索引 我需要洗牌列表,使每个数组列表的内容仍然连接。这就是我尝试过的 public void shuffleTracks(String tracks){ for(int i = 0; i < name.size(); i++){

嗨,我有3个名为trackNum的数组列表,名称和持续时间。 arraylist的内容已连接,即trackNum名称和持续时间的索引1已链接

因此,我创建了第三个数组列表,其中填充了将被洗牌的数字。然后,这些数字将用作系统输出的索引

我需要洗牌列表,使每个数组列表的内容仍然连接。这就是我尝试过的

public void shuffleTracks(String tracks){           
    for(int i = 0; i < name.size(); i++){
        numbers.add(i);
    }
    Collections.shuffle(numbers); 
    Iterator<Integer> itr = numbers.iterator();
    while (itr.hasNext()){
        System.out.println(itr.next());
    }

    for(int a = 0; a < name.size(); a++){
        System.out.println(trackNum[numbers[a]] ": " + name[numbers[a]] " " + duration[numbers[a]]);
    }
}
public void shuffleTracks(字符串跟踪){
对于(int i=0;i
我在最后一个系统打印行上得到了所有错误,错误显示


任何帮助都将是巨大的

直接的答案是使用括号(
[index]
)代替数组访问来访问列表等集合

这就是:

numbers.get(a)
而不是:

numbers[a]

Java没有语法糖可以用括号代替
get
方法进行数组访问。

你可以用所有需要的信息创建一个类,然后用该类的实例洗牌一个数组列表。@Jordão是的,回答并给他看一个简单的
Track
类。而不是对每个字段使用数组,如果有一个包含每个字段的类以及该类的数组/集合,则更有意义。在构造字符串时,您还缺少一个
+
运算符,请改用
printf
。谢谢您的建议,但我仍然收到这些错误,我的老师要求使用ArrayList:/你当然应该对其他
ArrayList
实例也这样做,而不仅仅是对
数字
…我现在只收到了这些错误“表达式的类型必须是数组类型,但它解析为ArrayList”从你给我的代码中我看不出这是怎么可能的。如果一切都是正确的,那么代码中就不应该有任何数组,但听起来好像还有一两个数组(可能是返回类型?)。如果你必须,你可以在你给我们的问题下面更新你的代码,清楚地标记为编辑。。。