Я недавно пересматривал закодировать заметили использование этого синтаксиса в циклеОбъявление переменной в цикле для длины массива
for(int i = 0, len = myArray.length; i < len; i++){
//some code
}
в противоположность:
for(int i = 0; i < myArray.length; i++){
//some code
}
С учетом того, что он более эффективен, так как вам не нужно постоянно искать свойство myArray.length с каждым циклом.
Я создал тест, чтобы проверить, было ли это так, и во всех моих тестах первый подход к петле был значительно (около 70%) быстрее, чем второй.
Мне было любопытно, почему этот синтаксис не более широко принят и что я прав, думая, что это лучший подход к использованию цикла for через массив.
«Мне было любопытно, почему этот синтаксис не более широко принят и что я прав, думая, что это лучший подход к использованию цикла for через массив. " Поскольку большинство людей используют итераторы сегодня :-) – Smutje
IMHO первый синтаксис не используется широко, поскольку это микро-оптимизация, если вам нужно выжать такое количество производительности, возможно, вам нужно переосмыслить много вещей, а 'for 'loop может быть последним. –
Это хороший момент. Даже мне не нравится использовать методы .size() и .length() в цикле for. Более приемлемый подход был бы для (String str: myarray) {} – raki