计数到零,与计算长度相反 - 1

hel*_*hod 1 java micro-optimization

是否建议将小循环(如果可能)从长度 - 1减少到零,而不是计算长度 - 1?

1.)倒计时

for (int i = a.length - 1; i >= 0; i--) {
    if (a[i] == key) return i;
}
Run Code Online (Sandbox Code Playgroud)

2.)数数

for (int i = 0; i < a.length; i++) {
    if (a[i] == key) return i;
}
Run Code Online (Sandbox Code Playgroud)

第一个比第二个快一点(因为比较零更快)但在我看来更容易出错.此外,第一个可能无法通过JVM的未来改进进行优化.有什么想法吗?

Kev*_*vin 11

如果将a.length的结果存储在变量中,则实际上它不会是"更快".无论如何,很少值得担心这种微不足道的操作的表现.专注于方法的可读性.

对我来说,计数更具可读性.