2014-12-13 44 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