処理順序が重要でない場合に、ArrayListや配列を走査する場合には、フツーなら
for (int i = 0; i < list.size(); i++) { Object o = list.get(i); ...(略) }
とかやる*1わけだが、
昔は色々と病気に罹患していた*2ため、こんな書き方をしてしまっていた。
for (int i = list.size(); i > 0; ) { Object o = list.get(--i); ...(略) }
この書き方だと、
- list.size()は一回しか実行しない
- 0との比較はバイトコード上は特別扱い(インストラクションが減る)なので、ちょっと早くなる
なので、たぶん最速だと思う。(もし他にあったら教えてください)
ちなみに、
for (int i = list.size(); i-- > 0; )
としないのは、iが0のときの無駄なデクリメント処理('0'→'-1')が走るのを防ぐため。
...ということを
ふと思い出した。まぁそんだけ。
もちろん今は、可読性を最重要視した書き方を心がけてます。