Я пытался создать список воспроизведения, принадлежащий классу "Song" , имеющему поля - (String
) 'title' и (int) 'duration' .У него нет ошибки компиляции, но он выдает ConcurrentModificationException
всякий раз, когда я пытаюсь оперировать списком.
Я пытался обработать копию списка, но это не сработало.Я читал, что использование цикла for вызывает эту ошибку, но я использую только Iterator
:
while (!quit) {
int input = s.nextInt();
s.nextLine();
switch (input) {
case 0:
System.out.println("exiting");
quit = true;
break;
case 1:
if (!goingforward) {
if (listIterator.hasNext())
listIterator.next();
goingforward = true;
}
if (listIterator.hasNext())
System.out.println("now playng: " +
listIterator.next().getTitle());
else {
System.out.println("At end of the list");
goingforward = false;
}
break;
case 2:
if (goingforward) {
if (listIterator.hasPrevious())
listIterator.previous();
goingforward = false;
}
if (listIterator.hasNext())
System.out.println("Now playing: " +
listIterator.previous().getTitle());
else {
System.out.println("At top of the list");
goingforward = true;
}
break;
case 3:
if (goingforward)
System.out.println("Now playing: " +
listIterator.previous().getTitle());
else
System.out.println("Now playing: " +
listIterator.next().getTitle());
break;
default:
System.out.println("invalid");
}
Ожидается: просмотр списка песен, добавленных в плейлист, с выводом: Теперь играем Почему мыlive
1 (INPUT)
Сейчас играет Save Me
Вывод:
Сейчас играет Почему мы живем
1. Перейти квперед
2. Перейти к предыдущему
3. воспроизвести
- выйти
1 (ВХОД)
Исключение в потоке "main".LinkedList.java:892) в Mian.main (Mian.java:49)