今更気づいたforループのMAX値
例えば String のリスト list を for ループで回したい場合。
よろしくない方法
この方法だと、ループの度にリストの size() メソッドを呼び出すことになるので、パフォーマンス上よろしくない。
for (int i = 0; i < list.size(); i++) {
少し改善した方法
for ループの前にリストの size() メソッドをローカル変数に取っておく方法なら、ループの度に size() メソッドを呼ばなくて済む。
でも、ループでしか必要のない変数 max がループ後も残ってしまい使えるのは、よろしいとは言えない。
int max = list.size(); for (int i = 0; i < max; i++) {
さらに改善した方法
for 句の1つ目で、size() を取っておくことができる。
(昔書き方を間違えて、この方法はできないものとばかり思い込んでいた orz
これが今日のブレイクスルー(´・ω・))
for (int i = 0, max = list.size(); i < max; i++) {
おそらく最善の方法
アルゴリズムの解説書などを参考にすると、ループの MAX 値の変数名は「n」がよいらしい。
for (int i = 0, n = list.size(); i < n; i++) {