2014-12-13 5 views
-1

Привет, у меня есть 3 arrayList, называемый trackNum, имя и продолжительность. Содержимое архаиста связано, например, индекс 1 для имени и продолжительности trackNum.Перетасовка нескольких элементов массива в том же порядке?

Итак, я создал третий список массивов, в котором я населен цифрами, которые будут перетасованы. Затем числа будут использоваться в качестве индекса для выхода системы.

Мне нужно перетасовать список, чтобы содержимое каждого списка массива все еще было подключено. Это то, что я пробовал.

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

Вы можете создать класс со всей необходимой информацией и затем перетасовать один список массивов с экземплярами этого класса. –

+0

@ Jordão Да, сделайте ответ и покажите ему простой класс «Трек». – gknicker

+0

Вместо использования массива для каждого поля было бы разумнее иметь класс, который имеет каждое из полей, и массив/коллекцию этого класса. –

ответ

0

Прямым ответом будет использование get(int index) вместо доступа к массиву с использованием скобок ([index]) для таких коллекций, как списки.

Так что было бы:

numbers.get(a) 

вместо:

numbers[a] 

Java не имеет синтаксический сахар заменить метод get с кронштейнами для доступа к массиву.

+0

При построении строки вам также не нужен оператор '+', вместо этого используйте 'printf'. –

+0

Спасибо за совет, но я все еще получаю эти ошибки http://imgur.com/15HzYkm, мой учитель попросил arraylists:/ – IeuanW

+0

Вы должны сделать то же самое для других экземпляров 'ArrayList', конечно, а не только для' чисел '... –