ArrayList を逆に繰り返すと、IndexOutOfBoundsException が発生します。前方反復を実行してみましたが、問題はありません。リストには 5 つの要素があることを期待し、知っています。コードは以下のとおりです。
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)
また、逆反復のより良いイディオムを誰かが知っている場合は、喜んで試してみたいと思います。