Вы можете сделать это, если вам удобно с циклом foreach.

я переворачиваю итерацию 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)

Также, если кто-нибудь знает лучшую идиому для обратной итерации, я был бы счастлив попробовать это.

Ответы на вопрос(8)

Ваш ответ на вопрос