Когда я перехожу назад через ArrayList, я получаю исключение IndexOutOfBoundsException. Я пробовал делать итерацию вперед, и проблем нет. Я ожидаю и знаю, что в списке пять элементов. Код ниже:
Collection rtns = absRtnMap.values();
List list = new ArrayList(rtns);
Collections.sort(list);
for(int j=list.size();j>0;j=j-1){
System.out.println(list.get(j));
}
Итерация вперед - которая работает нормально, но не полезна для меня:
for(int j=0;j<list.size();j++){
System.out.println(list.isEmpty());
System.out.println(list.get(j));
} // this worked fine
Ошибка:
Exception in thread "Timer-0" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at model.Return.getReturnMap(Return.java:61)
at controller.Poller$1.run(Poller.java:29)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Также, если кто-нибудь знает о лучшей идиоме для обратной итерации, я был бы счастлив попробовать это.