2014-12-13 43 views
-1

您好我有3个arrayList叫trackNum,名称和持续时间。 连接列表列表的内容,即连接trackNum名称和持续时间的索引1。以相同的顺序改变多个arrayList?

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

我需要洗涤列表,以便每个数组列表的内容仍然连接。这是我所尝试过的。

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]]); 
    } 
} 

我得到的最后一个系统打印行我所有的错误,错误说

enter image description here

任何帮助将不胜感激。

+1

您可以使用所有需要的信息创建一个类,然后使用该类的实例洗刷单个数组列表。 – 2014-12-13 12:52:42

+0

@Jordão是的,给出答案并向他展示一个简单的“Track”类。 – gknicker 2014-12-13 12:56:14

+0

而不是每个领域使用一个数组,它会更有意义,有一个具有每个字段,该类的数组/集合的类。 – 2014-12-13 13:16:35

回答

0

直接的答案是使用get(int index)而不是使用括号([index])的列表的数组访问。

因此,这将是:替代

numbers.get(a) 

numbers[a] 

Java没有语法糖用括号内为数组访问更换get方法。

+0

构建字符串时,您还缺少'+'运算符,而是使用'printf'。 – 2014-12-13 13:02:46

+0

感谢您的建议,但我仍然得到这些错误http://imgur.com/15HzYkm,我的老师要求arraylists:/ – IeuanW 2014-12-13 13:08:06

+0

你应该对其他'ArrayList'实例相同,当然不只是'数字'... – 2014-12-13 13:13:07